• 締切済み

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

みんなの回答

  • 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

専門家に質問してみよう