フォーム内の同名エレメントが単数/複数になる

新人さんから質問されたのでメモを書いておきます。

HTML の フォーム内に 同じ名前でエレメントが 1つだったり 複数だったりすることがあるそうです。 そんな場合は、次のような "document.FORM.ELEMENT" 指定だと if 文等で分岐させなくてはなりません。

if ( 1 つのとき ) {
    window.alert( document.FORM.ELEMENT.name );
} else {
    for ( var i = 0; i < document.FORM.ELEMENT.length; i++ ) {
        window.alert( document.FORM.ELEMENT[i].name );
    }
}

1 つの案として document.getElementsByName() を使う方法があります。

var objs = dicument.getElementsByName("element");
for ( obj in objs ) {
    window.alert( obj );
}

document.getElementsByName() は、エレメントが 1 つでも複数でも 配列で返してくれるため分岐が不要になるのです。

Google サイト内検索

Amazonアソシエイト