2012-06-20 127 views
2

我正在使用jQuery的驗證插件來檢查我的表單的一些值。驗證工作正常,但現在我想在提交表單之前檢查其他內容。jQuery:驗證後提交攔截

這是額外的檢查,這應該只是形式的所有字段後運行已成功驗證:

$("#formname").submit(function() { 
    if($("#input").val() == $("#hiddenInput").val() { 
     // Everything fine, may submit 
     return true; 
    } else { 
     // Check wasn't successfull, let's alert 
     alert("Fix the input"); 
     return false; 
    } 
}) 

這與插件的實際驗證:

$("#formname").validate({ 
    rules: { 
     ou: { 
      required: true, 
      minlength: 2, 
      number: true 
     }, 
     directors: { 
      required: true, 
      number: true 
     } 
    }, 
    messages: { 
     ou: { 
      required: "Message", 
      minlength: "Message", 
      number: "Message" 
     }, 
     directors: { 
      required: "Message", 
      number: "Message" 
     } 
    }, 
    errorPlacement: function ($error, $element) { 
     var name = $element.attr("name"); 

     $("#" + name + "Error").append($error); 
    } 
}) 

我實際上確實在開始時添加了第一個代碼片段,但每次單擊提交時都會運行它,而不管驗證本身是否成功。是否有某種驗證返回代碼或事件可以檢查?

回答

4

假設相同的插件,加入

submitHandler: function(form) { 
    alert('your submit code here'); 
} 

到您的驗證,參考here

或者添加規則,如本:

input: { 
     equalTo: "#hiddenInput" 
    } 

這將驗證它就像其餘你的驗證。

+0

非常感謝,正是我所需要的! – Ahatius