提交事件中的Jquery表单验证触发另一轮

提交事件中的Jquery表单验证触发另一轮,jquery,jquery-validate,Jquery,Jquery Validate,如果表单无效,我试图使自定义错误消息区域可见。 但是,else分支现在返回到此处理程序,并且从不提交。如何在其他部门提交表格?或者这种方法是错误的,如何正确地做到这一点?尝试以下方法: $('form').on('submit', function(e) { e.preventDefault(); if(!$(this).valid()) { $(this).find(".dialogErrorMessageArea").show(); } els

如果表单无效,我试图使自定义错误消息区域可见。 但是,else分支现在返回到此处理程序,并且从不提交。如何在其他部门提交表格?或者这种方法是错误的,如何正确地做到这一点?

尝试以下方法:

    $('form').on('submit', function(e) {
    e.preventDefault();
    if(!$(this).valid()) {
        $(this).find(".dialogErrorMessageArea").show();
    } else {
        $(this).submit();
    }
});
或者更简单一点:

$('form').on('submit', function(e) {
  if(!$(this).valid()) {
    $(this).find(".dialogErrorMessageArea").show();
    e.preventDefault();
  }
});

只需使用表单属性提交表单:

$('form').submit(function(e) {
  if(!$(this).valid()) {
    $(this).find(".dialogErrorMessageArea").show();
    e.preventDefault();
  }
});
把你的e.preventDefault()放进去;在true分支中,因此它不会影响else分支。
$('form').on('submit', function(e) {
    e.preventDefault();
    if(!$(this).valid()) {
        $(this).find(".dialogErrorMessageArea").show();
    } else {
        $("form").submit();
    }
});