• ベストアンサー

ネスケでテキストボックス内で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

  • テキストボックスでリターン(Enter)ボタンを押下し、イベントを発生させる

    ただ今JavaScriptを勉強しているものです。 テキストボックスでリターン(Enter)ボタンを押下し、イベントを発生させたいのですが、どういったコードで実現可能でしょうか? どなたか教えてください。

  • 一部Enter無効化の方法を教えてください!

    PHPで作成している画面について、テキストコントロールにフォーカスがある場合に、 Enterキーを押下することで、submitが行われることを無効化させたいと思っています。 <SCRIPT LANGUAGE=javascript> <!-- document.onkeypress = enter; function enter(){ if( window.event.keyCode == 13 ){ return false; } } //--> </SCRIPT> のようなJavaScriptを記述すれば完全にEnterキーを無効にできるようですが、 この状態だと、submitにフォーカスがある状態でEnterキーを押下してもsubmitが実行されません。 この状態を解決する方法をご存知の方、アドバイスをお願いします!! ちなみにブラウザは最低でも、IE6,7とFireFoxには対応したいと思っています。 当方、HTML,PHP,JavaScriptは素人同然ですので、明確な内容で教えて頂けると助かります。 宜しくお願いします!!

  • ホームページ内でEnterキー押下時にフォーカスを移動したい

    イントラネットでホームページの管理をしています。 個人認証画面にてユーザー→パスワードを入力してもらい、認証ボタンを押してメインページへ飛ぶ画面があります。 ユーザー入力後にEnterキー押下でパスワードへ、 パスワード入力後にEnterキー押下で認証ボタンへ それぞれフォーカスを移動したいのですが、実現方法がわかりません。 javascriptでfocus()及びblur()を使えばと思いましたが、キー入力イベントの取得方法がわかりません。 ページ先頭にてdocument.onkeydownから取得する方法だと初回のみの取得しか出来ませんでした。 それぞれのオブジェクトでキー入力のイベント判定をしてフォーカスを移動する方法があれば教えてください。 OS :WIN2K ブラウザ:NetScape4.0 PG :HTML(ASP,VBScript,JavaScript)

  • NetScapeで、テキストボックス内でのEnterキー押下で、データチェック用関数を無視してすぐに次の画面へ遷移してしまう

    OS Windows2000、ブラウザ NetScape6.2&4.75を使用しています。また、<SCRIPT LANGUAGE="JavaScript">を使用するよう指定されています。 お伺いしたいのですが、 JavaScriptで禁則文字をはじくなど、テキストボックスに修正入力されたデータのチェックをする関数『function DataCheck()』をつくり、INPUT TYPE="submit"の確認ボタンでonClick="return DataCheck()"としています。return値は、データチェックの結果、OKならばtrue、チェックにひっかかるとfalseを返し、falseの場合はアラートで注意を促し、次画面には遷移させません。で、IEではテキストボックス内にカーソルを当ててENTERキーを押すと、onClick="return DataCheck()"を拾ってくれて、チェックにひっかかると次画面には遷移させませんが、今回実装しなければいけないNetScape4.75と6.2では、テキストボックス内にカーソルを当ててENTERキーを押すとonClick="return DataCheck()"をひろってくれません。なお、その画面には、確認ボタンのほかに、戻るボタンとリセットボタンもあり、戻るボタンもリセットボタンもINPUT TYPE="submit"のため(←前画面に戻る場合も、デフォルト表示にリセットする場合も、該当画面を表示させる為に再検索して表示させる仕様です。)、FORMタグ内にonSubmit="return DataCheck()"としてもリセットボタンや戻るボタンでもデータチェックをしてしまいます。なので、Enterキー押下でデータチェック関数を拾ってくれたとしてもひどいことに。。。どなたか、よい知恵をください。お願い申し上げます。

  • JavaScriptのキーイベントについての質問です。

    JavaScriptのキーイベントについての質問です。 フォーム上にテキストボックス、セレクトボックス、ボタンがあります。 それぞれの項目移動をキーボード(enter)で行いたいのですが、 テキストボックスからセレクトボックスへの移動は、 onkeydownとonblurにより、enter押下にて行えるのですが、 セレクトボックスからボタンへの移動が行えません。 これは可能なのでしょうか? できればセレクトボックスにフォーカスされている時にenter押下で、ボタンを押すようにしたいです。 ブラウザはIEです。 どなたか是非ともご教示お願い致します。

  • テキストボックスについて

    使っている環境はVB6.0です。 テキストボックスが2つあり、1つ目のテキストボックスでEnterキーを押すとテキストボックスの2つ目にフォーカスが移動するというものなのですが、その移動したときに2つ目のテキストボックスの文字が選択されている状況を作りたいのですが何か良い方法はないでしょうか? 文字は最初から入っている前提でお願いします。

  • [Enter]エンターキーでカーソル移動する方法

    プログラム(VB.NET)初心者です。 どうぞよろしくお願いします。 フォームに複数のテキストボックスを配置しているのですが、 タブで次のテキストにフォーカスが移動するように [Enter]キー押下時もフォーカスを次のテキストに移動させたいのです。 色々試してみたものの、なかなかうまくいきません(><) どなたか、わかる方教えていただけたら幸いです。 サンプルソースがあると嬉しいです。 申し訳ありませんが、宜しくお願いします。

  • フォーカスがあるテキストボックスに文字を入れる

    GUIでテキストボックスとボタンを作っています。 ボタンをクリックすると、GUIのテキストボックスに書かれた文字がWebブラウザ側にあるテキストボックスへ挿入されるという処理をしたいです。 この処理は、ボタンを押す前にWebブラウザ上のテキストボックスにフォーカスを移し、その後ボタンを押したらフォーカスがある位置に文字を挿入すればできるのではと考えたのですが。。。 フォーカスがある位置に文字を挿入させるやり方がわかりません。 どなたか分かる方教えてください><;

  • JavaScriptでのEnterキーとAlt+Enterキー制御について

    Web画面で入力するシステムを構築しています。 利用者が入力する際、使いやすくするためという要望があり、現在「Enterキー」を押下するとそのキーコードをトラップし、TABに変換して次項目へ移動させるという処理をJavaScriptで行っています。 ここで、Web画面の項目に「TEXTAREA」があり、その項目中で入力し改行したいと思っても上記JavaScriptが効いてしまって次項目へ飛んでしまいます。 そこで「Alt+Enter」を押すとTEXTAREA内で改行するという処理を作り込みたいのですが、やり方がわかりません。(ただし、Altでなくても可。要はEnterを押すと次項目へ移動し、何か特別なことをするとTEXTAREA内で改行できればOK。) 「Alt+Enter」時のキーコードや具体的なやり方を紹介していただけないでしょうか? 以上、よろしくお願いします。

  • テキストボックスの値変更時のイベント

    フォーム上のテキストボックスに、前の画面で入力したデフォルト値が表示されている状態で、テキストボックスの値を変更したらJavaScriptの関数でチェックさせたいと考えているのですがうまくいきません。 onChangeイベントは値を変更(例えば削除するなど)して、Enterキーを押すなりフォーカスを移すなりしないとイベントが発生しないので、変更されたら即座にチェックということができません 何かうまい方法はないでしょうか?

専門家に質問してみよう