2013-04-25 118 views
0

在這裏,我有一個Jquery驗證插件和Struts2的問題。當點擊取消按鈕時如何取消Jquery Validation submitHandler?

我在我的表單中有3個按鈕,如下所示。

<td><s:submit type="button" value="Save" theme="simple" cssClass="valid" /></td> 
<td><s:submit type="button" value="Cancel" theme="simple" action="cancel" cssClass="cancel"/></td> 
<td><s:submit type="button" value="Submit" theme="simple" cssClass="valid"/></td> 

當表單被提交時,驗證將使用jquery驗證完成。表單成功提交後,我希望用戶確認提交表單?

所以我用jQuery的Validate函數submitHandler。 但是,當我點擊取消此submitHandler正在執行。點擊取消按鈕時,我不希望發生任何事情。這是JavaScript部分。

$(document).ready(function() { 

    $("#MyForm").validate({ 
    //Some validation rules 
     submitHandler: function(form) { 
     //this runs when the form validated successfully 
     //My code after submitting the form 
      alert("Hello"); 
     } //End of Submit Handler 
    }); 

}); 

我知道這將是一個簡單的answer.Though請幫我找到它的人

+0

爲什麼struts2的被標記這個問題? – 2013-07-15 12:05:26

+0

因爲我在struts2框架中實現這個應用程序。 – AndichamyGA 2013-07-17 11:18:42

回答

1

問題的根源是,你form包含三個submit按鈕。即使每個人都有不同的value,插件也會觸發每一個。

1)將取消按鈕更改爲type="reset"。該插件將忽略這種類型的輸入(但是,HTML將清除表單數據)。

http://jsfiddle.net/hnyd2/

OR

2)將取消按鈕form以外。佈局將有所不同,但您可以使用CSS更精確地放置按鈕。

http://jsfiddle.net/hnyd2/1/

OR

3)給它的form裏面,但阻止使用jQuery的preventDefault()submit按鈕的默認行爲。您必須在按鈕上放置一個id,以便您可以正確定位。

$('#cancel').click(function(e) { 
    e.preventDefault(); 
    // anything else to do on click 
}); 

http://jsfiddle.net/hnyd2/3/

+0

夥計..感謝您的回覆。 1)如果我改變type =「reset」,那麼struts2框架會拋出錯誤。 2)如果我移動表單之外的取消按鈕,那麼與它關聯的動作類別無法正常工作..我的意思是動作被調用.. 你有什麼建議嗎? – AndichamyGA 2013-04-29 09:50:57

+0

@Andy,你可以嘗試使用jQuery來阻止按鈕的默認功能。看到我編輯的答案。 – Sparky 2013-04-29 14:19:13

+0

謝謝Sparky。讓我試試你第三種選擇..我希望它的作品..! – AndichamyGA 2013-05-02 10:53:08