LoginSignup
1
1

More than 5 years have passed since last update.

誰も遭遇しないかもしれないFireFoxのform.elementsのバグ

Posted at

発見したのは半年くらい前ですが、現在の最新バージョンFireFox 47.0 でも発生します。

HTMLFormElement.elementsはフォーム配下のコントロールにname属性、id属性のどちらからでもアクセスできるコレクションです。
しかし、id属性とname属性が同じ値だった場合に限り、id属性を削除するとname属性でのアクセスも出来なくなってしまいます。

<!DOCTYPE html>
<html>
<head>
  <script>
    var elem = document.getElementById("text1");
    elem.removeAttribute("id");
    elem = document.forms[0].elements["text1"];
    alert(elem); // undefined (IE、chromeでは取得出来る)
  </script>
</head>
<body>
  <form>
    <input type='text' name='text1' id='text1' />
  </form>
</body>
</html>

ちなみに以下の手順を踏むとidを削除してもelementsからnameで取得出来るようになりました。

  1. id属性を別の値に変更する。
  2. name属性を別の値に変更した後元に戻す。
  3. id属性を削除する。
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1