- ベストアンサー
ネスケでテキストボックス内でEnterを押下すると・・・。
ブラウザはNC 4.75です。 画面上にテキストボックスが一つしかない時、 テキストボックス内にフォーカスを合わせてEnterを押下すると submitが働いてしまいます。 これを回避したい(Enterを押下しても変化無し)のですが、 JavaScriptではEnterのキーコードが取得出来ない様なので、 良い対処方法があれば教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
cite:RFC1866 ==引用== When there is only one single-line text input field in a form, the user agent should accept Enter in that field as a request to submit the form. ==意訳== 単一のテキストフィールドが在る場合、ユーザエージェントはそのテキストボックス(フィールド)の"Enter"をフォームからの送信リクエストとして受理すべきだよ(大意)。 ======== らしいのでWWWブラウザの仕様というよりは、むしろ成すべき動作です。 んでもってどうするかですが、もうひとつテキストフィールドを作ってdisplay:hidden;とか。 それもあんまりうまくないので <input type="text" onkeypress="if(event.keyCode == 13){alert('Enter was pushed.');return false;}"> とか。 と思ったらNetscape4.7xではkeyCode取得できないのか。というわけで <form onsubmit="return false;" name="form1">(便宜上色々と略) として <input type="submit" onclick="document.form1.submit();"> こんなのはどうですか。 って下の方と殆ど変わりませんが、一応type="submit"です。 あまりお薦めできませんが。
その他の回答 (3)
- kodai_sumio
- ベストアンサー率45% (29/64)
↓のx1gさんの補足です。 inputをbuttonにして、送信する所は問題ないですが、これでもEnterを押したらsubmitされるはずです。ですので、改良しまして、 <FORM ACTION="x.cgi" METHOD="POST" NAME="form1" onSubmit="return false"> <INPUT TYPE="button" VALUE="送信" onClick="javascript:document.form1.submit()"> </FORM> とすれば、buttonを押さない限り送信されません。
お礼
どうもありがとうございました。 さっそく試してみます。 今後もよろしく御願いします。
補足
あくまでも TYPE="submit" のままで、 Enterを押下しても何の処理も起きないようにしたいのですが、 いかがなものでしょうか??
- x1g
- ベストアンサー率33% (1/3)
訂正です <INPUT TYPE="button" VALUE="送信" ONCLICK="javascript:form1.submit()"> 正しくは <INPUT TYPE="button" VALUE="送信" ONCLICK="javascript:document.form1.submit()"> (動作確認してません)
補足
あくまでも TYPE="submit" のままで、 Enterを押下しても何の処理も起きないようにしたいのですが、 いかがなものでしょうか??
- x1g
- ベストアンサー率33% (1/3)
ブラウザの仕様だと思いますが… これを回避するには <FORM ACTION="ここに送信先" METHOD="送信方法"> <INPUT TYPE="submit" VALUE="送信"> </FORM> とせずに <FORM ACTION="ここに送信先" METHOD="送信方法" NAME="form1"> <INPUT TYPE="button" VALUE="送信" ONCLICK="javascript:form1.submit()"> </FORM> としてみてはいかがでしょうか? (確認していないのでうまくいかなかったらごめんなさい。)
お礼
こんなにすぐに回答が帰ってくると思いもしませんでした。 どうもありがとうございました。 さっそく試してみます。
補足
あくまでも TYPE="submit" のままで、 Enterを押下しても何の処理も起きないようにしたいのですが、 いかがなものでしょうか??
お礼
返事が遅くなってすいません。 どうもありがとうございました。 一度試してみます。