我可以将所有必需的输入(包括选择)推送到将其attr("type")
作为数据的数组中
var checked = [];
$(".login :input").each(function (){
if($(this).prop('required')) {
if($(this).val() == "") {
checked.push($(this).attr("type"));
}
}
});
我现在在警报(已测试)上得到的数组checked
的值为email,state_prov
。现在,单击按钮时,我得到一个function
:
$(".login :input").each(function(){
if($.inArray($(this).attr("type"), checked) > -1) {
if($(this).val() == "") {
$(this).parents(".form-group").append('<h5 class="text-danger notice phone invalid text-center" style="font-weight:bold;">This field is empty</h5>');
$(this).parents(".form-group").addClass('has-error');
}
}
});
现在,单击按钮时,上面的function
运行。现在,所有必填的input
字段将同时显示错误消息,但是问题是只有select
输入没有错误消息,直到您填满所有输入字段并保留最后一个字段select
作为“空白”。
仅需清除,包括select
在内的所有字段都具有父div .form-group
输入字段
<div class="form-group">
<input type="email" class="form-control" id="email" name="email">
</div>
选择字段
<div class="form-group">
<select type="state_prov" name="state_prov" class="form-control state_prov" id="state_prov">
<option value="" selected>- Select State -</option>
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AZ">Arizona</option>
...
...
...
</select>
</div>
问题:仅input
个字段同时收到不包含select
字段的错误消息。检查上面的我的js代码。
我如何检查是否是$ .inArray问题?:我试图注释此行if($.inArray($(this).attr("type"), checked) > -1) {
,并且它是结束标记,并且所有字段,包括select
都同时收到错误消息(因此,可以在没有上述$ .inArray行的情况下工作),然后删除注释,问题再次出现。