• ベストアンサー

ネスケでテキストボックス内でEnterを押下すると・・・。

ブラウザはNC 4.75です。 画面上にテキストボックスが一つしかない時、 テキストボックス内にフォーカスを合わせてEnterを押下すると submitが働いてしまいます。 これを回避したい(Enterを押下しても変化無し)のですが、 JavaScriptではEnterのキーコードが取得出来ない様なので、 良い対処方法があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • risk_14
  • ベストアンサー率33% (2/6)
回答No.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"です。 あまりお薦めできませんが。

ryumiya
質問者

お礼

返事が遅くなってすいません。 どうもありがとうございました。 一度試してみます。

その他の回答 (3)

回答No.3

↓の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を押さない限り送信されません。

ryumiya
質問者

お礼

どうもありがとうございました。 さっそく試してみます。 今後もよろしく御願いします。

ryumiya
質問者

補足

あくまでも TYPE="submit" のままで、 Enterを押下しても何の処理も起きないようにしたいのですが、 いかがなものでしょうか??

  • x1g
  • ベストアンサー率33% (1/3)
回答No.2

訂正です <INPUT TYPE="button" VALUE="送信" ONCLICK="javascript:form1.submit()"> 正しくは <INPUT TYPE="button" VALUE="送信" ONCLICK="javascript:document.form1.submit()"> (動作確認してません)

ryumiya
質問者

補足

あくまでも TYPE="submit" のままで、 Enterを押下しても何の処理も起きないようにしたいのですが、 いかがなものでしょうか??

  • x1g
  • ベストアンサー率33% (1/3)
回答No.1

ブラウザの仕様だと思いますが… これを回避するには <FORM ACTION="ここに送信先" METHOD="送信方法"> <INPUT TYPE="submit" VALUE="送信"> </FORM> とせずに <FORM ACTION="ここに送信先" METHOD="送信方法" NAME="form1"> <INPUT TYPE="button" VALUE="送信" ONCLICK="javascript:form1.submit()"> </FORM> としてみてはいかがでしょうか? (確認していないのでうまくいかなかったらごめんなさい。)

ryumiya
質問者

お礼

こんなにすぐに回答が帰ってくると思いもしませんでした。 どうもありがとうございました。 さっそく試してみます。

ryumiya
質問者

補足

あくまでも TYPE="submit" のままで、 Enterを押下しても何の処理も起きないようにしたいのですが、 いかがなものでしょうか??

関連するQ&A