仅在没有验证错误时提交表单

时间:2013-04-29 08:46:33

标签: jquery validation

我目前正在包含电子邮件的输入字段上运行验证。 单击“提交”并且如果电子邮件字段未验证,则显示错误覆盖。

我现在的问题是,表单提交无论是否验证。 如果所有内容都经过验证(在我的示例中为电子邮件字段)

,我如何才能提交
var clicked = $("button");

clicked.click(function() {
    var email = $("input[type='email']").val();
    if (!validateEmail(email)) {
        //Show validation error
    } else {
        //Dont show validation error
    }
});

Fiddle of my setup here

2 个答案:

答案 0 :(得分:1)

将事件传递给click函数,如果验证失败,则在事件上调用preventDefaultpreventDefault将阻止事件的默认操作发生。

var clicked = $("button");

clicked.click(function(e) {
    var email = $("input[type='email']").val();
    if (!validateEmail(email)) {
        e.preventDefault();
    } else {
        //Dont show validation error
    }
});

工作示例: http://jsfiddle.net/2FfQw/1/

答案 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进行提交,它也是一个很好的钩子。