読者です 読者をやめる 読者になる 読者になる

FLYING

〈全日本・紀文豆乳飲料シリーズ「麦芽コーヒー」の500ミリリットルパックを扱う小売店が少ないことに遺憾の意を表明する会〉活動記録

IEでフォームのsubmitがうまく動かないときの対処法

<form action="./hoge.php" method="post">
<input type="password" name="password" />
<input type="submit" name="login" value="ログイン" />
</form>

こういう感じのパスワードを入力してログインするフォームを作ったとき,InternetExplorerではパスワードを入力した後でエンターキーを押してsubmitしても「login=ログイン」というパラメータが送られない場合がある。ページの挙動から察するに,submitはされているけどsubmitボタンに設定されているnameとvalueのペアが送信されないようだ。おそらくIE6でも7でも8でも再現。不具合というよりはIEの仕様らしい。

この現象はフォーム内にテキストボックスが1つしかないという条件の下で発生するようなので,次のようにして見えないテキストボックスを増やしてあげれば動く。

<form action="./hoge.php" method="post">
<input type="password" name="password" />
<input type="text" name="dummy" style="display:none;" />
<input type="submit" name="login" value="ログイン" />
</form>

ただし,次のようにinput要素のtype属性をhiddenにしてもうまくいかなかった。

<form action="./hoge.php" method="post">
<input type="password" name="password" />
<input type="hidden" name="dummy" />
<input type="submit" name="login" value="ログイン" />
</form>