输入和textarea填写后,我的简单表单将不会提交。为便于阅读而编辑。
$(function () {
$("#contactform").submit(function () {
$(":input").not("[type=submit]").removeClass('error').each(function () {
if ($.trim($(this).val()).length == 0) $(this).addClass('error');
});
if($(document).hasClass("error")){
return false;
}
});
});
<form id="contactform" action="success.php" method="post">
<input type="text" id="name" placeholder="name" autofocus >
<input type="text" placeholder="email" >
<textarea placeholder="message" ></textarea>
<input type="submit">
</input>
</form>
答案 0 :(得分:1)
您正在使用return false;
来阻止提交。只有当您想要停止提交表单时才使用它(例如验证中的错误等)
答案 1 :(得分:1)
每次都不要使用return false。检查输入是否有错误,如
return !!$('input.error').length;
答案 2 :(得分:1)
请勿使用return false;
,这会停止提交。
将您的代码更改为以下内容:
$(function () {
$("#contactform").submit(function (e) {
$(":input").not("[type=submit]").each(function () {
if ($.trim($(this).val()).length == 0){
$(this).addClass('error');
e.preventDefault();
}
});
});
});
答案 3 :(得分:1)
您应该在返回false之前检查是否有任何错误
$(function () {
$("#contactform").submit(function () {
$(":input").not("[type=submit]").removeClass('error').each(function () {
if ($.trim($(this).val()).length == 0) $(this).addClass('error');
});
// if there is anything with a class of error inside the form
// can also use $(this).find('.error') - it's the same thing
if($('.error',this).length){
// then return false
return false;
}
});
});