我正在尝试验证所有材料下拉列表。但是我frm.material is undefined
的系统出现错误。
HTML 标记
<form name="testFrm" id="textFrm">Material 1
<select name="material[1][]" class="Form_dropdown material_dd">
<option value="-1">Select</option>
<option value="2">Fine Silk</option>
<option value="10">NZ Wool</option>
<option value="3">Thick Silk</option>
<option value="1">Titbetan Wool</option>
</select>
<select name="material[1][]" class="Form_dropdown material_dd">
<option value="-1">Select</option>
<option value="2">Fine Silk</option>
<option value="10">NZ Wool</option>
<option value="3">Thick Silk</option>
<option value="1">Titbetan Wool</option>
</select>
<br />Material 2
<select name="material[2][]" class="Form_dropdown material_dd">
<option value="-1">Select</option>
<option value="2">Fine Silk</option>
<option value="10">NZ Wool</option>
<option value="3">Thick Silk</option>
<option value="1">Titbetan Wool</option>
</select>
<br />Material 3
<select name="material[3][]" class="Form_dropdown material_dd">
<option value="-1">Select</option>
<option value="2">Fine Silk</option>
<option value="10">NZ Wool</option>
<option value="3">Thick Silk</option>
<option value="1">Titbetan Wool</option>
</select>
<select name="material[3][]" class="Form_dropdown material_dd">
<option value="-1">Select</option>
<option value="2">Fine Silk</option>
<option value="10">NZ Wool</option>
<option value="3">Thick Silk</option>
<option value="1">Titbetan Wool</option>
</select>
<select name="material[3][]" class="Form_dropdown material_dd">
<option value="-1">Select</option>
<option value="2">Fine Silk</option>
<option value="10">NZ Wool</option>
<option value="3">Thick Silk</option>
<option value="1">Titbetan Wool</option>
</select>
<br />
<input type="button" onclick="return checkForm()" value="validate" />
</form>
我创建了一个 jsFiddle,你可以在这里找到http://jsfiddle.net/QgghZ/12/
第一个选择选项的值是<option value="-1">Select</option>
需要检查是否有任何下拉菜单未设置为选择。
我需要一个 js 函数来验证这些下拉列表。
提前谢谢大家的支持
编辑
感谢大家修复 jsFiddle 问题,但我需要一个可以迭代这些下拉列表的验证函数。
编辑
如果我使用以下 JS,它会显示名称
var boxes = document.getElementsByTagName('select');
for(i = 0; i < boxes.length; i++){
console.log(boxes[i].name);
}
// Output: material[1][], material[1][], material[2][] .... someotherDropdowns
回答
这是我获得所有值的方式
function checkForm(){
var e = false;
var boxes = document.getElementsByClassName('material_dd');
for(i = 0; i < boxes.length; i++){
if(boxes[i].value == '-1'){
e = true;
}
}
if(e){
alert('Please select a material');
return false;
}
}
因此,即使还有其他选择框,它也只会检查材料下拉列表。我可以遍历该值以查看其中是否有-1。