フォームで[Enter]キーが押された際に・・・

2007/01/21 | JavaScript/Ajax

HTMLフォームの処理でユーザインターフェースを考えた際のもんんだいに対する対応。
例えば入力フォーム中のテキストボックス(<input type="text">)に入力する時で[Enter]エンターキーが押されると、サブミットするつもりでないのにフォームを処理してしまうことがある。フォームの作り方にもよるが、これだとフォームがサブミットされてしまい、最悪の場合、今まで入力したデータがパーになってしまうこともある。
これを防ぐ方法。<input type="submit">を使わない方法で対応するのがよさそうだ。どうも[Enter]キーが押される=サブミットという図式が成り立つので、<input type="submit">をなくしてしまえばよい、というわけだ。
しかしそれではフォームをサブミットする方法がなくなるので代替の方法を用意しておかないといけない。ここでは簡単なJavaScriptを使う。

<input type="button" onClick="document.(フォーム名).submit()">

これで意図しないサブミット処理をなくすことができる(ただしJavaScriptが動作することが前提であるわけだが)。今はエンドユーザの使い勝手をよくするためにJavaScriptは必須な機能。昔は「JavaScriptをOnにしてください」なんて書いてあるサイトを見ると、ちょっとナンセンスと思っていた。できれば「JavaScriptはOnであることが当たり前」として、そうじゃない設定をしてあるブラウザは、イレギュラーなブラウザとしてブラウザ側で何らかの機能を実装して欲しいと思う(例えばJavaScriptを使ったページを見たら「このページはJavaScriptが使われているので、Onにしないと表示が乱れます」といったダイアログを出すとか・・・)。
そもそもセキュリティホールが多すぎるんだろうね。でも、これはActivXに絡んだIEの問題なように思うけれど・・・(もちろんIE以外でもバグはあるわけなんだけどね)。

流行はAjaxを初めとするJavaScript。
難しい・・・。

コメントを残す


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net