• 締切済み

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']) { ... }

  • jamey
  • お礼率83% (265/316)
  • PHP
  • 回答数1
  • ありがとう数1

みんなの回答

  • little-m
  • ベストアンサー率44% (45/102)
回答No.1

ENTERキーを押した時に、その画像ボタンにフォーカスが来ている場合と、来ていない場合があるからでは無いでしょうか? <body onload="document.f1.btn_submit.focus()"> <form name="f1"> <input type="image" name="btn_submit" ...> </form> とすれば画面表示直後にENTERキーを押せば送信できるのではと思います。(この場合、name="submit" は javascript のsubmit()と混同しそうなので別名にした方がよいかもしれません)

jamey
質問者

お礼

回答ありがとうございます。 確かにTABキーなどで移動してちゃんとフォーカスさせると、Enterキー押下でtrueになるようです。また教えていただいたようにJavascriptを使うという手もあると思います(逆にEnterキー押下で送信されたくないという質問をよく見かけます)。

jamey
質問者

補足

お礼からの続きなのですが、しかし、<input>や<select>などを並べた最後に<input type="image"...>(送信ボタン)が続く一見似たようなフォームで、IEの場合だけですが、送信ボタンの情報がEnterキー押下で送られたり送られなかったりというという違いが出るのは何故なのでしょう。 そのform内の入力関連のタグの順序や組合せ、その間に入っているtableなどのHTMLタグが関係してくるのかなとしか考えようがないのですが。。。あるいはスタイルシートとか。。。 こういう問題の解決は、プロのみなさんはやはりJavascriptを用いていらっしゃるのでしょうか。

関連するQ&A

  • IEでのフォームメールで、ENTERキーでのsubmitを動かさないようにしたいのですが。。

    IEでフォームメールを使用したときにENTERキーを押下するとsubmitが動いてしまうのですが、その動きを止める為に 1.送信ボタンは   <input type="button" name="submit" value=" 送信する " onClick="subm()"> で関数subm()で function subm() { document.form1.submit(); } という動きと 2.送信ボタンに<input type="button" name="submit" value=" 送信する " onClick="javascript:document.form1.submit()"> という動きの2つを試してみたのですが、どちらもエラーになってしまいました。 原因がわからないので調べているところですが、もしどなたか他の方法をご存知でしたら、教えていただけませんでしょうか?

  • Enterキーを押しても送信しないようにする

    ユーザーリクエストを受付けるHTMLフォームに 例えばテキストボックスがいくつかあって送信ボタンをクリックするとCGIにパラメータが送信されるという時に、テキストボックスの1つめにデータを入れた後、2つめ以降まだ入力してないのにEnterキーを思わず押してしまって送信されることってありますよね。 Enterキーを押しても送信されないようにすることって出来るのですか。よく、空白のテキストボックスが残っていると、「○○を入力してもう一度送信ボタンをクリックしてください」というエラーメッセージを表示して戻す。という手がありますが、テキストボックスが空白でも、データ送信はできる様にしたいのです。そうするとEnterキーを殺すしか方法が思いつかないのですが・・・

    • ベストアンサー
    • Perl
  • フォームで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;  } }

  • PHPでフォームからの送信

    PHPでフォームからデータを送信する方法について教えてください。例えばPHPファイルの中に下の様にフォームを作成して、送信ボタンを2つ作ります。一つのボタンをクリックすると全てのフォームの情報が送信されてしまいますが、独立して送信できるようにはできないのでしょうか。簡単にでもできるかできないかを教えていただけましたら、あとは自分でなんとかがんばりますので、どなたか教えていただけれますと幸いです。宜しくお願いします。 <form action="abc.php" method="post"> AAA:<input type="text" name="simei"> BBB:<input type="password" name="pass"> <input type="submit" value="送信"> </form> <form action="abc.php" method="post"> CCC:<input type="text" name="simei"> DDD:<input type="text" name="pass"> <input type="submit" value="送信"> </form>

    • ベストアンサー
    • PHP
  • C# Enterキーの動作について

    お世話になります。 VC#2010にて、フォームにボタンを配置し、そのボタンに フォーカスがあるときにEnterキーを押下すると、そのボタンが 押されたことになってしまいますが、これをさせない方法は ありますでしょうか。 Enterキーは、フォーム側でKeyDown(KeyPress?)処理で 別に行いたいので、押下として反応してしまうと、KeyDownに 処理が飛ばなくなってしまいます。 それを回避する方法です。 何卒よろしくお願いいたします。

  • フォームで作った送信ボタンが何も反応しないのですが

    お世話になります。 「いきなりはじめるPHPワクワク・ドキドキの入門教室 」という本に 従って、フォームの送信ボタンを作成したのですが、以下の症状が出ます。 ・送信ボタンはクリックすると色が一瞬変わりますが、何も 起きません。 ・フォームの枠内でenterを押すとcheck.phpに飛びますが、 表示されるのが、check.phpのHTMLが表示される。 (色々いじっている際、1、2度はcheck.phpの ブラウザ上の表示が出たことがありました。その際も送信ボタンでなく フォームの枠内でenterで表示) index.htmlの内容は以下の通りです。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>PHP基礎</title> </head> <body> <form method="post" action="check.php"> ニックネームを入力してください。<br /> <input name="nickname" type="text" style="width:100px"><br /> <br /> <input type="submit" value="送信"> </form> </body> </html> 環境は、 Mac OS X バージョン10.9.4 ブラウザは Google Chromeバージョン 35.0.1916.153 です。 ネットでも色々調べてみたのですが、 解決できなかったので質問させていただきます。 以上どうぞよろしくお願い致します。

    • ベストアンサー
    • PHP
  • display: none をすると Enter キーでサブミットできなくなる

    問題の原因がJavaScriptの範疇なのか(JSなのかHTMLなのかIEなのか CSSなのかそれとももっと別の部分なのか)どうかも分かりませんが、 以下のようにすると(恐らくIEのバグ?によって)IEでEnterキーで サブミットできなくなります。 (テストのために重要な部分だけPerlで簡略化して出力しています) #!perl print "Content-type: text/html\n\n"; print <<"HTML"; <body onload="document.form1.style.display = 'block'; document.form1.input0.focus();"> <form name="form1" style="display: none;"> HTML for(my $i = 0; $i < 50; $i++) { print qq(<input type="text" name="input$i"><br>\n); } print <<"HTML"; <input type="submit"> <input type="reset"> </form> </body> HTML 概要 1. 画面外にはみ出す量のフォーム内容をdisplay: noneしてから JavaScriptで表示します。 2. フォームにフォーカスを与えてEnterキーを押しても反応しません。 3. display: noneしなければEnterキーが効きます。 4. 一度画面内にサブミットボタンを表示させると効くようになりますが サブミットボタンを画面から外した後に更新をかけるとまた効かなく なります。 4. IE 以外では正常動作するようです(テストしたIEのバージョンは 6.0 SP2)。 説明が下手で分かりにくいかもしれませんがこれの原因の詳細と 対策はありませんか。

  • IEでの送信フォームについて

    IEでの送信フォームに関する質問です。 フォームの入力欄以外にカーソルをあてて Enter(Return)キーを押すと、 自動的にフォーカスが「送信」ボタンにいってしまい、 送信扱いになってしまいます。 <form> ~ </form>の部分で上記のような現象がおこります。 NNではおこりませんでした。 このフォーカスを無効にするにはどのような方法が あるでしょうか。どうかアドバイスをよろしくお願いします。

  • エンターキーを押しても送信されません。

    IEで以下のソースで、検索文字を入れてエンターキーを叩いても フォームが送信されません。ちなみに、このHTMLには 他に2つのフォームもあります。IEだと複数フォームのSubmit ボタンがあるとエンターキーで送信できないのでしょうか? <form action="" method="post" name="fm3"> <input type="text" name="search_word" value="" size="56" maxlength="255" > <input type="submit" name="search_submit" value="絞りこみ" > </form> FireFoxだと、フォームの入力値が送信されるのですが・・

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

専門家に質問してみよう