我在这里发布了一个很长的问题Form validation multidimensional select boxes
一个简短的问题是,我允许用户为数据输入添加多行。每行都有
<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
修改
使用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
}
我如何从选择框中获取所选选项的值
答案 0 :(得分: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
}