2012-07-06 68 views
0

在多页表单上,我使用jQuery验证来允许用户继续在表单上工作,或向前移动而不保存。jQuery验证,在无效处理程序上提交

所以,我想从字面上理解错误是否存在,显示对话框以及是/否让它们继续。 SubmitHandler只有在正确时才有效,当它失效时无效,我需要使用invalidHandler。不过,当我试图通过与JQuery验证递归问题打破,它告诉我:

Uncaught TypeError: Object #<Object> has no method 'submit'

$('.form-submit-next').click(function() { 
    $('#form').validate({ 
     errorPlacement: function(error, element) {}, 
     invalidHandler: function(form, validator) { 
       $('#dialog').dialog({ 
        resizable : false, 
        width : 350, 
        height : 200, 
        modal : true, 
        buttons : { 
         "Yes" : function() { 
          $(this).dialog("close"); 
          form.submit(); //errors here 
         }, 
         "No": function() { 
          $(this).dialog("close"); 

         } 
        } 
       }); 
      } 

    }); 
}) 
+0

如果你console.log(表单),它是否输出期望值?如果不是,您可能希望将其分配给逻辑中的一个变量。 var form_submit_next = $('form-submit-next'); – Donnie 2012-07-06 14:27:34

+0

糟糕。我在我的例子中引用了错误的表单。我相信你知道我的意思。 – Donnie 2012-07-06 14:36:07

+1

Markup please ... – 2012-07-06 14:39:21

回答

0

你需要做一个DOM提交当您单击“是”按钮,将绕过验证器:

buttons : { 
    "Yes" : function() { 
     $(this).dialog("close"); 
     $(this)[0].submit(); 
    }