我有一个表单,我需要做一些验证,我的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(){ 完成这个?
答案 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()给出错误。