$ .inArray无法在选择输入上触发

时间:2018-09-06 20:44:41

标签: javascript jquery html

我可以将所有必需的输入(包括选择)推送到将其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行的情况下工作),然后删除注释,问题再次出现。

0 个答案:

没有答案