如何不验证某些输入

时间:2016-06-30 12:38:28

标签: javascript jquery validation twitter-typeahead

我有一个表格,我使用twitter typehead& amp;问题是每当twitter类型加载它时,它会创建另一个输入字段,该字段为空白且未向用户显示

现在我有了这个功能来验证所有输入

 var fields = $('#second_step input[type=text]');
        var error = 0;
        if (!$("input[name='career']:checked").val()) {
  alert('Please Select yes or no'); return false;
}
        fields.each(function(){
            var value = $(this).val();
            if( value.length<1 || value==field_values[$(this).attr('id')]) {
                $(this).addClass('error');
                $(this).effect("shake", { times:3 }, 50);

                error++;  
            } else {
                $(this).addClass('valid'); 
            }
        });
        if (!$('#reg').valid()) {
    return false;
}

现在由于那个没有名字或id的打字头输入,它只有一个类tt-hint&amp;这个输入是只读的,我怎么能从上面的验证中跳过这个输入?

5 个答案:

答案 0 :(得分:1)

您可以使用jQuery's NOT功能。

var fields = $('#second_step input[type=text]').not('.tt-hint');

答案 1 :(得分:0)

您可以使用以下内容过滤掉字段:

var fields = $('#second_step input[type=text]:not(.tt-hint)');

答案 2 :(得分:0)

您的输入已使用类选择器.typeahead应用了typeahead。 因此,在您的情况下,您可以使用:not伪类选择器来过滤它们:

var fields = $('#second_step input[type=text]:not(.typeahead)');

这样就可以跳过预先输入字段。

答案 3 :(得分:0)

就个人而言,我会忽略禁用的字段,因为如果出现错误,用户无法更正它们。你说输入是只读的,所以似乎是相关的。

$('#second_step input[type=text]').filter(function(){ return !this.disabled; })

答案 4 :(得分:-1)

试试这个:

fields.each(function(){
        var value = $(this).val();
        if($(this).hasClass('tt-hint') {
            $(this).addClass('valid'); 
        } else {
        if( value.length<1 || value==field_values[$(this).attr('id')]) {
            $(this).addClass('error');
            $(this).effect("shake", { times:3 }, 50);

            error++;  
        } else {
            $(this).addClass('valid'); 
        }
       }
    });
    if (!$('#reg').valid()) {
return false;
}