我正在尝试运行验证('keyup')而不是on('blur')。如果所有字段都不验证,目标是阻止前进。它的工作方式,所有父div都有一个类.item和“当前工作jquery”也有一个类.bad,如果没有找到它会启用下一个按钮。请参阅以下代码:
当前正在运行的jQuery:
$('input[required]').change(function(){
var v = this.value;
$(this).closest('div.item')[$.trim(v).length !== 0 ? 'addClass' : 'removeClass']('bad');
$('input[type="button"].next').prop('disabled', function(){
return $(this).closest('fieldset').find('div.bad').length > 0;
});
}).change();
现在我正在尝试为每个字段集设置一个特定的函数,以返回特定数量的类true,然后激活。因此,如果存在“4”类“div.good”,则从“.next”中删除Att('disabled')
<!-- when page loads -->
<div class="item"><input required></div>
<!-- if it doesn't validate -->
<div class="item bad">
<input required>
<div class="alert">why it isn't validating</div>
</div>
<!-- and if it does validate it changes to -->
<div class="item good"><input required></div>
逻辑和概念 - 执行不力 - jquery
($("fieldset.first").children().find('.good')[4]){ //should I use .length !== 4?
$('.next').removeAttr('disabled');
}else{
$('.next').attr('disabled', true);
}
答案 0 :(得分:1)
尝试
$('.next').prop('disabled', $('div.item').has('.alert').length > 0);