Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript+;HTML如何验证多维选择对象_Javascript_Html_Multidimensional Array - Fatal编程技术网

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不存在的表单。