Оператор if возвращает true, если первый селектор типа возвращает true - PullRequest
2 голосов
/ 26 марта 2012

Ниже приведен код для проверки того, что люди не могут отправить, если значение ввода с атрибутом data-fill="fill" равно ''. Моя проблема в том, что он проверяет оператор IF от первого до последнего ввода. Это означает, что если первый вход имеет значение, форма будет отправлена; если первые два ввода заполнены, они будут отправлены и так далее ... Если первый вход не заполнен, он отлично работает для других входов. Можно ли гарантировать, что он проверяет все входные данные перед возвратом true или false?

$('form').submit(function() {
     var input = $('input, textarea');

     if (input.data('fill') == 'fill' && input.val() == '') {
         return false;
     } 
});

Я знаю, что могу решить эту проблему, нацеливая каждый ввод индивидуально с помощью «else if», но это просто неправильный способ сделать это.

1 Ответ

3 голосов
/ 26 марта 2012

Чтобы рассмотреть все значения input, используйте метод each.

$('form').submit(function() {    
   var allFilled = true;
   $('input, textarea').each(function () {
     if ($(this).data('fill') === 'fill' && $(this).val() === '') {
       allFilled = false;
     }
   });

   return allFilled;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...