Я пытаюсь выполнить проверку («keyup») вместо on ('blur'). Цель состоит в том, чтобы предотвратить продвижение вперед, если все поля не проверяются. Как это работает, все родительские div имеют класс .item и с «текущим рабочим jquery» также имеют класс .bad, если он не найден, он включает следующую кнопку. Смотрите ниже код:Отключить кнопку, если класс существует else удалить отключен
Текущий рабочий 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();
Теперь я пытаюсь установить определенную функцию к каждому FIELDSET вернуть определенное число классов истинных, а затем активировать. Так что, если "4" классы "div.good" присутствуют, removeAttr ('отключено') от ".next"
<!-- 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);
}
Это добавление автоматически, потому что вы сразу же вызываете событие 'change' с' .change() 'в конце. – tymeJV