我试图解决另一个人的jQuery问题并遇到了我自己的问题。
为了解决这个问题,我需要确定空文本框的数量。我认为最好的解决方案是使用element[attribute='value']
选择器,但这不起作用。
alert($("input[val='']").length);
即使还有3个其他空文本框,我总是得到0。空文本框的值应等于空字符串。
这是我的小提琴
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);
});
});
答案 0 :(得分:4)
第一个问题是您将value
属性称为val
。这些被认为是两个不同的属性。
下一个问题是某些输入元素可能没有值属性。因此,您需要专门检查或检查值 falsey
var emptyInputs = $('input').filter(function() {
return !$(this).val();
});
console.log(emptyInputs.length);
$(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;