鷹の島

2007-03-02 (Fri)

Javascript で IE のバグと戦う

さっき知ったのですが、InternetExplorer はフォーム内にテキストフィールドが1つしかない場合、エンターキーを押しても submit ボタンの情報(name,value)は送られない仕様*1だそうです。フィールドが2つ以上あれば良いらしく、幅0のフィールドを追加するとか CSS で見えなくしたりするのがトレンディみたいです。

submit ボタンに名前を付けて処理を分岐させるのって結構好きなのですが、こんなわけのわからん仕様っつかバグでしょ、まぁいいや、えっとこんなの覚えておけないし、また悩むのは嫌なので Javascript で見えないフィールドを自動的に追加するやつ書いてみました。

var f = document.forms;
for(var elm, i = 0; elm = f[i]; i++) {
   var input = document.createElement('input');
   input.style.display = 'none';
   elm.appendChild(input);
}

onload 後に読み込ませれば快適。

  • *1: どなたか詳細をご存じでしたら教えて下さい。

Posted by Kyosuke Takayama at 2007-03-02 (Fri) 18:28