我希望计算已填充的文本框的数量。我有以下代码,但它没有按照我想要的方式工作。我是JQuery的新手,该脚本基于我在Stack Overflow上的研究。
标记:
<input class="a" type="text" name="rep">
<input class="a" type="text" name="rep">
<input class="a" type="text" name="rep">
脚本:
$(".a").blur(alert(countRep()));
function countRep() {
var fieldTxtbx = $(".a").filter(function(){
return $.trim($(this).val()) != '';
}).length;
return fieldTxtbx;
}
为什么它在加载时起作用,但每次我在文本框中输入时都没有调用blur()
?
答案 0 :(得分:2)
目前,您将countRep()
的返回值与模糊事件绑定,而不是函数。
将一个函数与事件绑定并调用您的方法。
$(".a").blur(function() {
alert(countRep())
});
答案 1 :(得分:0)
改变这个:
$(".a").blur(alert(countRep()));
有了这个:
$(".a").blur(alert(countRep)); // no needed to use parenthesis to call function.
或者,使用这样:
$(".a").blur(function(){
alert(countRep());
});
答案 2 :(得分:0)
将您的模糊事件修改为:
$(".a").blur(function(){
alert(countRep());
});
您也可以将非空文本框的缩小选择器用于:
$('.a').filter(function() {
return $(this).val();
});
答案 3 :(得分:0)
尝试以下代替第一行:
'$(".a").on("blur", OnBlur);
function OnBlur(event) {
alert(countRep);
}