小さい頃はエラ呼吸

いつのまにやら肺で呼吸をしています。


Internet Explorerで発生するフォーカスをコントロールに移動できません。というエラーについて

Internet Explorerでdisableな要素に対してfocusを設定しようとすると、以下のようなエラーが発生する。

  • フォーカスをコントロールに移動できません。コントロールは表示されていない、使用できない状態、またはフォーカスを受け入れない種類です。

またdisableでなくても、style="display:none"みたいに要素は存在するが、非表示にしているような場合も同様のエラーが発生する。対処としては、対象の要素がdisableでない、かつ、非表示でないことを確認してから.focus()メソッドを呼び出す必要がある。

サンプルコード
<html>
<SCRIPT language="JavaScript">

  function hoge() { 
    document.getElementById("b2").focus();
  }

</SCRIPT>
<body>
<input type="button" id="b1" value="ボタン2にフォーカスをあてる" onclick="hoge();">
<input type="button" id="b2" value="ボタン2" disabled>
</body>
</html>