1

ここに長い質問を投稿しましたフォーム検証多次元選択ボックス

短い問題は、ユーザーがデータ入力用に複数の行を追加できるようにしていることです。各行には

<select name="color[]">
   <option>1</option>
   <option>2</option>
   <option>3</option>
   <option>4</option>
</select>

選択ボックスが3つある場合は、を使用してその長さを取得でき、frm["color[]"].length3を返します。

ただし、選択ボックスが1つしかない場合はfrm["color[]"]、選択からいくつかのオプションが返され、4が返されます。

編集

使用document.getElementsByName("color[]")し、それは動作しました。ありがとうkolink、

    colors= document.getElementsByName("colors[]").length;

    console.log(colors); // print proper numbers now
    for(i=0; i<colors; i++){
        dd = frm["colors["+i+"]"].value; // <- how to check value
        console.log(dd);
        k = i+1;
        var subColors = document.getElementsByName("colors["+k+"][]").length

    }

選択ボックスから選択したオプションの値を取得する方法

4

1 に答える 1

1

より具体的なを使用すると、現在の機能ではなくfrm.getElementsByName("color[]")、要素が明示的に選択されます。<select>

編集:これがそれを使用する方法です:

var sels = document.getElementsByName("colors[]"), l = sels.length, dd;
for( i=0; i<l; i++) {
    dd = sels[i];
    // do stuff
}
于 2013-02-21T06:10:21.817 に答える