我在一个表单中有多个选择,并且我需要使用jQuery检查是否至少选择了所有必填字段(required="true")。

像这样:

<select class="check" name="first">
    <option value="some" required="true">Some required</option>
    <option value="other">Other Value</option>
    <option value="few" required="true">Few required</option>
</select>
<select class="check" name="second">
    <option value="some" required="true">Some required</option>
    <option value="other">Other Value</option>
    <option value="few" required="true">Few required</option>
</select>
<select class="check" name="third">
    <option value="some" required="true">Some required</option>
    <option value="other">Other Value</option>
    <option value="few" required="true">Few required</option>
</select>
<select name="other">
    <option value="some" required="true">Some required</option>
    <option value="other">Other Value</option>
    <option value="few" required="true">Few required</option>
</select>


我需要检查其类包含.check的所有选择元素,并确保分配了所有必填字段。

我正在考虑进行以下操作。


制作所有必需值的数组:

var requiredFields = [];
$('option:selected', this).attr('required').each(function(){
    requiredFields.push($(this).val());
})

制作所有选定值的数组:

var valuesSelected = [];
$('.check').each(function(){
    valuesSelected.push($(this).val());
})

检查必填字段是否在所选值数组中,如果没有,请执行以下操作:

for(i=0;i<requiredFields;i++){
    if(jQuery.inArray(requiredFields[i], valuesSelected)==-1){
         var error += 'Please select '+requiredFields[i];
    }
}

显示错误消息,或者如果为空则执行以下操作:

if(error!=''){
    alert(error); // just for testing
} else {
     // have fun
}



我已经编写了一个简单的jsFiddle进行测试,但是看来我一定做错了什么,有帮助吗?

最佳答案

这是使用地图的一种方法

09-30 16:34
查看更多