2013-02-21 3 views
1

я отправил длинный вопрос здесь Form validation multidimensional select boxesJavascript Длина выберите массив

короткая проблема, я позволяю пользователям добавлять несколько строк для ввода данных. Каждая строка имеет

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

Если есть 3 выберите коробки я могу получить его длину с помощью frm["color[]"].length и он будет возвращать 3.

Но если есть только 1 выберите поле frm["color[]"] вернет мне несколько вариантов, из Выбор и вернуть меня 4

EDIT

использовали 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 

    } 

Как я могу получить значение выбранного параметра из отборной коробки

ответ

1

Используйте более конкретные frm.getElementsByName("color[]"), это будет явно выбрать <select> элементов вместо того, что он в данный момент делает.

EDIT: Вот как это можно использовать:

var sels = document.getElementsByName("colors[]"), l = sels.length, dd; 
for(i=0; i<l; i++) { 
    dd = sels[i]; 
    // do stuff 
} 
+0

используется 'document.getElementsByName ("цвет []")', и она работала. Но как я могу получить выбранное значение в цикле. Я хочу, чтобы петля на всех прямоугольниках выбора, чтобы получить значения –

+0

См. Редактирование для ответа. –

Смежные вопросы