Javascript+;HTML如何验证多维选择对象
我正在尝试验证所有材料下拉列表。但是我得到了Javascript+;HTML如何验证多维选择对象,javascript,html,multidimensional-array,Javascript,Html,Multidimensional Array,我正在尝试验证所有材料下拉列表。但是我得到了frm。我的系统上的材料未定义错误 HTML标记 <form name="testFrm" id="textFrm">Material 1 <select name="material[1][]" class="Form_dropdown material_dd"> <option value="-1">Select</option> <option valu
frm。我的系统上的材料未定义错误
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>
材料1
选择
真丝
新西兰羊毛
厚绸
针织品羊毛
选择
真丝
新西兰羊毛
厚绸
针织品羊毛
材料2
选择
真丝
新西兰羊毛
厚绸
针织品羊毛
材料3
选择
真丝
新西兰羊毛
厚绸
针织品羊毛
选择
真丝
新西兰羊毛
厚绸
针织品羊毛
选择
真丝
新西兰羊毛
厚绸
针织品羊毛
我已经创建了一个JSFIDLE,您可以在这里找到它
第一个选择选项的值为select
,需要检查是否有任何下拉列表未设置为select
我需要一个js函数来验证这些下拉列表
提前感谢大家的支持
编辑
感谢大家修复了JSFIDLE问题,但我需要一个可以迭代这些下拉列表的验证函数
编辑
如果我使用下面的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
var-box=document.getElementsByTagName('select');
对于(i=0;i
回答
下面是我如何得到所有值的
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;
}
函数检查表(){
var e=假;
变量框=document.getElementsByClassName('material_dd');
对于(i=0;i
}
因此,即使还有其他选择框,它也只会检查材质下拉列表。我可以迭代这个值,看看其中是否有-1 您的JSFIDLE设置错误,下面是更新的链接:
<input type="button" onClick="checkForm()" value="validate" />
没有id为testFrm的表单您的JSFIDLE设置错误,下面是更新的链接:
<input type="button" onClick="checkForm()" value="validate" />
没有id为testFrm的表单我不明白它为什么不工作,但我稍微更改了您的代码,现在它工作了
[jsFiddle][1]
[1]: http://jsfiddle.net/QgghZ/
我不明白为什么它不工作,但我改变了你的代码一点,现在它的工作
[jsFiddle][1]
[1]: http://jsfiddle.net/QgghZ/
替换frm=document.getElementById(“testFrm”)代码>
使用frm=document.getElementById(“textFrm”)代码>替换frm=document.getElementById(“testFrm”)代码>
使用frm=document.getElementById(“textFrm”)代码>除了表单名称上的输入错误外,您不会通过frm.material获得一个选择数组,它们不会像在后端脚本中接收表单时那样分组。您可以使用类似于frm[“material[1][]”]
的方法访问它们,但我会使用另一种类似document的方法。getElementsByClassName('material_dd')
这样您就可以知道有多少个元素。除了表单名称上的键入之外,您不会通过frm.material获得一个选择数组,当您在后端脚本中收到表单时,它们不是这样分组的。您可以使用类似于frm[“material[1][]”]
的方法访问它们,但我会使用另一种类似文档的方法。getElementsByClassName('material\u dd')
,这样您就可以知道有多少元素。请将所有相关代码放在question@I已经添加了所有必要的细节。谢谢,请将所有相关代码放入question@I已经添加了所有必要的细节。感谢您对JSFIDLE修复的感谢。我的问题是验证多维表单元素。感谢您对JSFIDLE的修复。我的问题是验证多维表单元素。感谢您对JSFIDLE的修复。我的问题是验证多维表单元素。因此,问题是您调用了一个id不存在的表单。感谢您提供了JSFIDLE修复程序。我的问题是验证多维表单元素。因此,问题是您调用了一个id不存在的表单。