@SHNM

Почему данный код работает не правильно?

Здравствуйте! Хочу сделать валидацию, то бишь, если все поля заполнены делать кнопку активной
Вот код
$('form').find('input').each(function () { 
 $($(this)).on('input', function () { 
 if ($(this).val().length == 0) { 
 $('.button').attr('disabled', true); 
 } 
 else { 
 $('.button').attr('disabled', false); 
 } 
 }) 
 })

Странно, он работает таким образом: если я заполню одно поле, то кнопка станет активной, а нужно, чтобы если все поля заполнены, то делать кнопку активной, что не так тут?))
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега jQuery
Причина номер раз: потому что автор кода говнокодер. Ну, то есть - вы даже отформатировать код не удосужились. Ковырять этот огрызок желания нет, так что точнее чем "раз" не скажу. Вот вам код рабочий, на этом всё:

$('form').on('input', function() {
  const disabled = !$('input', this)
    .get()
    .map(n => n.value)
    .every(Boolean);

  $('.button').prop({ disabled });
}).trigger('input');
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы