2010-02-10 82 views
13

我有一個相當麻煩的問題,我已經研究並提出了空白;jQuery validate();只需點擊一種提交按鈕即可驗證

情景: 我有一個表格,用jQuery的bassistance.de的validate()插件(http://docs.jquery.com/Plugins/Validation)。

然而,工作是否完美地提交?我有兩種類型的提交按鈕。

像往常一樣提交表單,觸發我的後端驗證並返回錯誤或成功。

另一種類型是爲了給瀏覽器提供一個提交按鈕,但它告訴我的後端增加了另一部分輸入(即就業歷史中的重複元素)。我希望用戶能夠添加重複元素而無需首先完成表單的其餘部分。所以點擊第二種類型的提交我想BYPASS的validate();

HTML:

<form method="post" action="" id="ApplicationForm" name="ApplicationForm"> 

    <input id="job1" name="job1" class="required"/> 
    <input type="submit" name="delete_job1" value="Delete" class="delete" /> 

    <input id="job2" name="job2" class="required"/> 
    <input type="submit" name="delete_job2" value="Delete" class="delete" /> 

    <input type="submit" name="add_job" value="Add Job" class="add" /> 

    <input type="submit" name="ApplicationForm" value="Save Details" class="submit" /> 

</form> 

我已經嘗試了偵聽低於實際提交按鈕,但這只是停止了驗證所有togerther;

$(document).ready(function() 
{ 
    var submitPress 

    $(".submit").click(function() 
    { 
     submitPress = true; 
    }); 

    if (submitPress) 
    { 
     $('form#ApplicationForm').validate(); 
    } 
}); 

我想這是因爲validate();聽衆設置在頁面的初始加載,而不是提交...

有沒有規則或設置爲validate();我錯過了,我可以利用它,甚至還有一個很好的老式JS JS。

Muchos gratias誰可以幫助,我在我的白堊結束。

此致 工作到很晚,再次開發

回答

23

http://docs.jquery.com/Plugins/Validation/Reference#Skipping_validation_on_submit

基本上,增加class="cancel"到你不想引發驗證提交按鈕。

<input type="submit" value="I Validate" /> 
<input type="submit" class="cancel" value="I skip Validation" /> 
+0

乾杯克里斯,多數民衆贊成在獾......不知道我是如何錯過了。我想昨晚我進入了黃昏區,不得不回家。 – 2010-02-11 10:35:03

+0

sweeeet ...使用jQuery的手機,認爲它可能是一個數據*屬性。謝謝@rambo編碼器 – sonjz 2012-10-19 19:16:10

+0

截至2015年,class =「cancel」現已被棄用。您現在添加'formnovalidate'屬性。點擊鏈接查看最新的文檔。 – Ben 2015-07-22 10:52:54

0

它不工作,因爲你提供你的輸入元素是成爲改變這樣submit_1_btnSubmit的ID,頁面加載後

所以要擺脫這種錯誤,你可以使用ClientIDMode="Static"

(if you are working on asp.net) 
<asp:Button ID="btnSubmit" runat="server" OnClick="btnSubmit_Click" Text="Submit" CssClass="Submit" ClientIDMode="Static" /> 

else 

you may access `clientIDmode` property on button control dynamically.