出産前後の痔にはご注意!

PHPとHTMLでフォームをいくつか作り、画像タイプの送信ボタンを押下すると送信されるようにしています。ところが、IEの場合、ENTERキー押下で送信できる(下記のPHPの制御文がtrueになる)ものと、できないものがあります。ボタンをクリックすればいずれも送信できます。また、FirefoxではどのケースでもEnterキー押下で送信できます。送信ボタンはどのフォームでもひとつです。
何がどういう場合に、IEでEnterで送信できないのでしょうか?

○HTML側
<form...>
...
<input type="image" name="submit" ...>
</form>

○PHP側
if(isset($_POST['submit_x']) {
...
}

A 回答 (1件)

ENTERキーを押した時に、その画像ボタンにフォーカスが来ている場合と、来ていない場合があるからでは無いでしょうか?



<body onload="document.f1.btn_submit.focus()">
<form name="f1">
<input type="image" name="btn_submit" ...>
</form>

とすれば画面表示直後にENTERキーを押せば送信できるのではと思います。(この場合、name="submit" は javascript のsubmit()と混同しそうなので別名にした方がよいかもしれません)

この回答への補足

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

補足日時:2007/06/19 09:09
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/06/19 09:08

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


人気Q&Aランキング