如果第一个类型的选择器返回true,则if语句返回true

时间:2012-03-26 18:55:32

标签: javascript jquery if-statement

以下是一些代码,用于确保如果具有属性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 个答案:

答案 0 :(得分:3)

要考虑所有input值,请使用each方法。

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

   return allFilled;
});