jQuery函数仅在文本框更改时运行

时间:2014-06-05 16:07:51

标签: javascript jquery events

我有一个表单,我需要做一些验证,我的jquery似乎工作,除非用户只是进入页面并提交而不进入文本框中的任何条目。这是我的HTML:

...
<% while (rs.next()) { %>
<input type="text" name="name" />
<%  }  %>
<input type="text" id="fafsaNbrFam" name="fafsaNbrFam" value="<%=nbrFam%>" class="hidden" />
....

和我的剧本:

 $("#submit").click(function(e) {
        var numEntries = 0;
        var fafsaNbr = 0;

        $("input[name^='name_']").each(function() {
          if (this.value) {
            numEntries++;
          }
        });

        fafsaNbr = parseInt($("input[name='fafsaNbrFam']").val());


        if (fafsaNbr > numEntries && !confirm("WARNING, numbers don't match.")) {
          e.preventDefault();
        }
      });

所以基本上如果填充了名称的文本框的数量不是隐藏的输入值,那么就会发生反冲,除非用户从未在文本框中输入任何内容,否则它会起作用。我可以使用什么事件代替     $(&#34;输入[name ^ =&#39; name _&#39;]&#34;)。each(function(){ 完成这个?

1 个答案:

答案 0 :(得分:0)

据我说它不会工作,因为当文本框为空时

$("input[name^='name_']").each(function()

parseInt($("input[name='fafsaNbrFam']").val());

.each()和val()返回null。因此,你的控制权没有提前。

你可以做的一件事:

document.getElementById("fafsaNbrFam")==null

使用此功能可以将值检查为true或false。因为如果在写入document.getElementById(“fafsaNbrFam”)或$(“#fafsaNbrFam”)时出现空文本框,则返回值为null。

并且,null.val()或null.each()给出错误。