• ベストアンサー

一部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は素人同然ですので、明確な内容で教えて頂けると助かります。 宜しくお願いします!!

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

  • ベストアンサー
  • benelli
  • ベストアンサー率51% (78/152)
回答No.2

すみません、気になったのちょっと横槍を失礼…… 「テキストコントロールのときだけ」無効ならば以下ですね。 <html> <head> <title>テキストがアクティブのときだけエンターきかない</title> </head> <body> <form id="form1" name="form1" action="http://localhost/"> テキストA:<input type="text" name="arrowhead"><BR> チェック:<input type="checkbox" name="delta"><BR> テキストB:<input type="text" name="ladylove"><BR> ラジオ:<input type="radio" name="wavemaster"><BR> セレクト:<select name="morningglory"> <option>セレクト </select><BR> <input type="submit" value="サブミット"><BR> </form> </body> <script type="text/javascript"> <!-- //@cc_on document./*@if(1) attachEvent( 'on' + @else@*/ addEventListener( /*@end@*/ 'keypress', function( evt ) {  var target = evt./*@if(1) srcElement @else@*/ target /*@end@*/;  var keyCode = evt./*@if(1) keyCode @else@*/ which /*@end@*/;  if( /text/i.test( target.type ) && keyCode == 13 ) {   /*@if(1) evt.returnValue = false; @else@*/ evt.preventDefault( ); /*@end@*/  } }, false ); //--> </script> </html> 違う部分を探せば分かると思いますが、今後の学習などの参考になればと思い投稿いたしました。

hiro_sun
質問者

お礼

細かい回答ありがとうございました! 無事対応できました!

その他の回答 (2)

回答No.3

よこやりによこやり。 いとしないときに、まちがって えんた~をたたくと とんでしまうよ~。なので・・・。ばぶ。

  • yuu_x
  • ベストアンサー率52% (106/202)
回答No.1

<script type="text/javascript"> <!-- //@cc_on document./*@if(1) attachEvent( 'on' + @else@*/ addEventListener( /*@end@*/ 'keypress', function( evt ) {  var target = evt./*@if(1) srcElement @else@*/ target /*@end@*/;  var keyCode = evt./*@if(1) keyCode @else@*/ which /*@end@*/;    if( !/submit/i.test( target.type ) && keyCode == 13 ) {   /*@if(1) evt.returnValue = false; @else@*/ evt.preventDefault( ); /*@end@*/  } }, false ); //--> </script>

hiro_sun
質問者

お礼

ありがとうございました! 無事対応できました!!

関連するQ&A

  • ENTERキーを無効にしたいのですが教えて下さい

    ENTERキーを無効にしたいのですが、SUBMITボタンでjavascriptを動かしています。 SUBMITを押した瞬間に、別ウィンドウにデータを渡しているのですが、 どの部分にどのようなスクリプトを追加すれば良いでしょうか? 良かったら教えて下さい。 ■親ウィンドウのHTML <html> <head> <title>親</title> <script type="text/javascript"> <!-- window.name = (new Date()).getTime();    function make_newwin(f) {   f.target = window.name + "_ko";   var w = window.open("about:blank", f.target, "スタイル設定");   w.focus(); } //--> </script> </head> <body> <form name="test" action="/cgi-bin/test-check.cgi" method="post" onSubmit="make_newwin(this)"> <input type="submit"> </form> </body> </html>

  • ASP.Net Enterキーで移動したいイベント

    大変お世話になっております。 Windowsフォームでの動作のようにASP.Net でも Enterキーにて次項目に移動したいと思い、いろいろと調べてみました。 <script language="javascript" type="text/javascript">   function ChgKeyCode() {     if (!(event.srcElement.type == "button" || event.srcElement.type == "submit")) {       if (event.keyCode == 13) {         event.keyCode = 9;       }     }   } </script> 上記スクリプトにて、EnterキーのコードをTabキーに変換してEnterでも次項目に移動できるようにしたのですが、これですと、TextBox にTextChangedイベントがあった場合にイベントが無視されてしまうのですが、どうすればよいでしょうか? Enterキーで次項目に移動しつつ、イベントも適応したいのですが、お知恵を拝借できればと存じます。 何卒よろしくお願いいたします。

  • ENTERキーを無効にしたいのですが教えて下さい。その2

    以前、以下の方法を教えていただいてうまくいったのですが、 ボタンを画像ボタンにし、javascriptで、押したら沈むボタンを 作成したところ、ENTERキーが無効にならなくなりました。 ENTERキーを押されて送信されないことが先決なので、 どなたかご伝授いただければと思います。 以前のスクリプト <html> <head> <title>親</title> <script type="text/javascript"> <!-- window.name = (new Date()).getTime(); function make_newwin(f) {   f.target = window.name + "_ko";   var w = window.open("about:blank", f.target, "スタイル設定");   w.focus();   f.submit(); } //--> </script> </head> <body> <form action="/cgi-bin/test-check.cgi" method="post" onSubmit="return false"> <input type="button" value="送信" onClick="make_newwin(this.form)"> </form> </body> </html> こちらで、 <input type="button" value="送信" onClick="make_newwin(this.form)"> これを以下のようにtypeを変えてしまったところ、効かなくなりました。 <input type="image" SRC="new.gif" ALT="新規登録ボタン" NAME="botan_new11" WIDTH="78" HEIGHT="26" BORDER="0" ID="botan_new" border=0 onMouseOver="MM_swapImage('botan_new11','','botan_new_sw.gif',1)" onMouseOut="MM_swapImgRestore()" onClick="make_newwin(this.form)"> これは、無理な話なのでしょうか?教えて下さい。

  • フォームでEnterを押してもsubmitさせない

    現在製作中のサイトで、ajaxで処理を行うため、フォームでEnterキーを押しても通常のsubmitをさせずに、別途処理を関数で呼び出すようにしています(下記参照)。 チェックしたほとんどのブラウザでは思い通りの動作なのですが、IE8(他のIEは未テスト)で、同じページに別のフォーム(こちらのフォームはEnterでsubmitさせています)があるページのみ、submitされてしまいます。(ajax_submit()も実行されます) 小さな可能性でもかまいません。お心当たりがございましたらお助けください。 ▼HTML <form method="get" action="">  <input id="s" type="text" value="" onKeyPress="return submitStop(event);" />  <p id="search_sbm" onclick="ajax_submit();">検索</p> </form> ▼JavaScript function submitStop(e){  if (!e) var e = window.event;  if(e.keyCode == 13) {   ajax_submit();   return false;  } }

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

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

  • return falseが効かない(F5キーの無効化)

    JavaScriptでF5キーの無効化をしています。 以下のソースで一応は実現できていますが、1台のマシンだけ 無効化されないものがあります。 =================== <html> <head> <title>F5キーを無効にする</title> <script language="JavaScript"> <!-- window.document.onkeydown = function () { if (event.keyCode == 116) { alert("来た"); event.keyCode = null; return false; alert("来てない"); } } //--> </script> </head> <body> </body> </html> =============== 該当のマシンでF5キーを押すと「来てない」のアラートは出ない のですが、再読み込みがされてしまいます。他の端末では 再読み込みはされません。 以下のようなサイトでJavaScriptのバージョン差異を確認しましたが 再読み込みがされる/されない端末では全て一致しました。 http://diaspar.jp/node/49 「インターネットオプション」-「セキュリティの設定」に ついても差異が見られませんでした。 OSはWindowsXpSP2 ブラウザはIE6.0SP2です。 何故このような動作の違いが発生するのか、御分かりになられる方 どなたか教えて下さい。宜しくお願いします。

  • 【JavaScript】二重送信防止

    いつもお世話になっております。 JavaScriptの二重送信防止についてご教授ください。 現在、下記のJavaScriptを組んでいるのですが、うまく二重送信防止が効いていません。 どこか、おかしなコードがありますでしょうか? ちなみに、<html:text>タグ内でonkeypress="JavaScript:toEnter();"を指定…((1))、 <a href>内でonclick="JavaScript:toAdd();"を指定…((2))しているのですが、 テキストボックス内でエンターを押下した時((1))にうまく二重送信防止が効いていません。 宜しくお願い致します。 <script language="JavaScript"> <!-- var flgSubmit = false; function submitCheck() { if ( flgSubmit ) { return false; } else { flgSubmit = true; return true; } } function toEnter(){ if( submitCheck() ) { if(event.keyCode == 13) toAdd(); } } function toAdd() { if( submitCheck() ) { document.AddForm.submit(); } } //--> </script>

  • PrintScreenキーを無効にしたい

    PrintScreenキーを無効にしたくて、いろいろネット検索して 調べたのですが、うまく動作する方法が見つかりません。 ちなみに、シェアウェアソフトを使用する、という方法は使えません。 よろしくお願いいたします。 ちなみに、下記が試してみて、ダメだったスクリプトです。 *********************************** <script language="JavaScript1.2"> Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp If e.KeyCode = Keys.PrintScreen Then MessageBox.Show("PrintScreen_KeyUp") Clipboard.SetDataObject("PrintScreenは無効です", True) End If End Sub </script> ************************************************ <script type=”text/javascript”> <!-- setInterval(’ClearClipBord()’,100); function ClearClipBord() { window.clipboardData.setData(’Text’,’’); } //--> </script> *********************************************

  • ENTERキー押下でフォームを送信したいのに・・・

    PHPとHTMLでフォームをいくつか作り、画像タイプの送信ボタンを押下すると送信されるようにしています。ところが、IEの場合、ENTERキー押下で送信できる(下記のPHPの制御文がtrueになる)ものと、できないものがあります。ボタンをクリックすればいずれも送信できます。また、FirefoxではどのケースでもEnterキー押下で送信できます。送信ボタンはどのフォームでもひとつです。 何がどういう場合に、IEでEnterで送信できないのでしょうか? ○HTML側 <form...> ... <input type="image" name="submit" ...> </form> ○PHP側 if(isset($_POST['submit_x']) { ... }

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

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