我有一个表格,我使用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;这个输入是只读的,我怎么能从上面的验证中跳过这个输入?
答案 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;
}