获取jQuery中未填充的空文本框的数量

时间:2015-08-25 16:09:12

标签: javascript jquery

我试图解决另一个人的jQuery问题并遇到了我自己的问题。

为了解决这个问题,我需要确定空文本框的数量。我认为最好的解决方案是使用element[attribute='value']选择器,但这不起作用。

alert($("input[val='']").length);

即使还有3个其他空文本框,我总是得到0。空文本框的值应等于空字符串。

这是我的小提琴

http://jsfiddle.net/04gqaLog/

HTML

<input type="text" /></br>
<input type="text" /></br>
<input type="text" /></br>
<input type="text" />

的jQuery

$(document).ready(function() {
    var sum = 0;
    var boxesFilled = 0;
    $("input").on("change", function() {
        sum += +$(this).val();
        boxesFilled += 1;
        alert($("input[val='']").length);
    });
});

1 个答案:

答案 0 :(得分:4)

第一个问题是您将value属性称为val。这些被认为是两个不同的属性。

下一个问题是某些输入元素可能没有值属性。因此,您需要专门检查检查值 falsey

    var emptyInputs = $('input').filter(function() {
      return !$(this).val();
    });
    console.log(emptyInputs.length);

&#13;
&#13;
$(document).ready(function() {
  var sum = 0;
  var boxesFilled = 0;
  $("input").on("change", function() {
    sum += +$(this).val();
    boxesFilled += 1;
    var emptyInputs = $('input').filter(function() {
      return !$(this).val();
    });
    console.log(emptyInputs.length);
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="text" />
</br>
<input type="text" />
</br>
<input type="text" />
</br>
<input type="text" />
&#13;
&#13;
&#13;