我正在尝试验证我的表单。下面是jquery。当我点击提交按钮时,如果表单有<span class="error">
,那么它应该警告faild,如果没有警报成功。问题是它只提醒'Faild'是否有<span class="error">
。请查看jsfiddle
$(".submitBtn").click(function() {
if($("form").find('.error')) {
alert('Faild');
} else {
alert('Success');
//return true;
}
});
$("form").submit(function(e) {
e.preventDefault();
});
<form id=="subscribeForm" method="post" action="">
<input type="text" name="name" class="f-comp t1 name" />
<input type="text" name="age" class="f-comp t2 age" />
<input type="text" name="email" class="f-comp t3 email" />
<textarea name="detail" class="f-comp words"></textarea>
<input type="submit" value="Submit" class="submitBtn" />
<span class="error"></span>
</form>
答案 0 :(得分:3)
您需要检查返回的jQuery的长度是否为零。实际上,即使没有匹配任何元素,条件也将始终求值为true,因为始终返回jQuery对象。
$(".submitBtn").click(function() {
if($("form").find('.error').length > 0) { //<<-- check for non-zero length
alert('Failed');
} else {
alert('Success');
//return true;
}
});
并且“失败”中有 e
答案 1 :(得分:2)
试试这个
$(".submitBtn").click(function() {
if($("form").find('.error').size()) {
alert('Failed');
} else {
alert('Success');
//return true;
}
});
.size()
将返回匹配的数字元素。如果没有则为0。
答案 2 :(得分:1)
你没有做布尔操作。
试试这个:
if($("form").find('.error').length > 0)
请注意,您正在检查与“错误”类匹配的项目数,而不是您是否收到回复。