使用JQuery计算非空文本框

时间:2014-09-04 10:12:38

标签: jquery

我希望计算已填充的文本框的数量。我有以下代码,但它没有按照我想要的方式工作。我是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()

4 个答案:

答案 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);
}