最新閲覧日:

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

A 回答 (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"です。
あまりお薦めできませんが。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/07/13 11:49

↓の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を押下しても何の処理も起きないようにしたいのですが、
いかがなものでしょうか??

補足日時:2001/07/09 15:24
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/07/05 18:34

訂正です


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

この回答への補足

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

補足日時:2001/07/09 15:27
    • good
    • 0

ブラウザの仕様だと思いますが…



これを回避するには
<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を押下しても何の処理も起きないようにしたいのですが、
いかがなものでしょうか??

補足日時:2001/07/09 15:28
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/07/05 18:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ