我在一个表单中有多个选择,我需要使用 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来测试它,但似乎我一定做错了什么,有什么帮助吗?