我目前正在包含电子邮件的输入字段上运行验证。 单击“提交”并且如果电子邮件字段未验证,则显示错误覆盖。
我现在的问题是,表单提交无论是否验证。 如果所有内容都经过验证(在我的示例中为电子邮件字段)
,我如何才能提交var clicked = $("button");
clicked.click(function() {
var email = $("input[type='email']").val();
if (!validateEmail(email)) {
//Show validation error
} else {
//Dont show validation error
}
});
答案 0 :(得分:1)
将事件传递给click函数,如果验证失败,则在事件上调用preventDefault
。 preventDefault将阻止事件的默认操作发生。
var clicked = $("button");
clicked.click(function(e) {
var email = $("input[type='email']").val();
if (!validateEmail(email)) {
e.preventDefault();
} else {
//Dont show validation error
}
});
答案 1 :(得分:0)
有几种方法可以做到这一点。我最喜欢的是挂钩表单提交事件,如果验证失败则返回false:
$('#form-id').submit(function() {
// do validation
if (!valid)
return false;
// if it's valid it will submit, no need to return true
}
如果你想使用ajax进行提交,它也是一个很好的钩子。