我正在尝试在('keyup')而不是('blur')上运行验证。目标是在所有字段都未验证的情况下阻止前进。它的工作方式,所有父 div 都有一个类 .item 并且“当前工作的 jquery”也有一个类 .bad,如果没有找到 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”中删除Attr('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);
}