2012-07-06 52 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(); 
    }