一連の INPUT 要素を Javascript 配列にグループ化しようとしていたのですが、なぜ多次元配列を取得したのか混乱しました (以下のコードでは「urls」という名前の配列)。最初の要素と同じ ID を持つ 4 番目の要素を混同していたことが判明しました。
<html>
<head>
<script language="javascript">
function validate() {
var form = document.forms.conf;
var urls = new Array(form.url1, form.url2, form.url3, form.url4);
alert(urls[0].value); // returns 'undefined'
alert(urls[0][0].value); // works
}
</script>
</head>
<body>
<form name="conf">
<input type="text" name="url1" id="url1">
<input type="text" name="url2" id="url2">
<input type="text" name="url3" id="url3">
<input type="text" name="url4" id="url1"><br />
<button type="button" onclick="javascript:validate();">Push me</button>
</form>
</body>
</html
私の質問は、なぜこれが起こるのですか?HTML属性「id」は「document.forms.form_name.element」とどのような関係にありますか? そして、なぜそれを多次元配列に入れるのでしょうか? 動作も同じクロスブラウザーのように見えるので、私が認識していない定義である必要があります。