我在頁面上有ASP:Button
。它呈現爲HTML像這樣:如何防止ASP:從jQuery點擊處理程序回發按鈕
<input type="submit" name="myButton" value="Do something"
onclick="javascript:WebForm_DoPostBackWithOptions(
new WebForm_PostBackOptions('myButton', '', true, '', '', false, false))"
id="myButton" />
現在我試圖阻止該按鈕的默認行爲通過jQuery的事件處理程序(提交表單):
$('#myButton').click(function() {
// do some client-side stuff
if (someCondition) {
// don't postback!
return false;
}
});
這裏的問題是,每次ASP粘貼在輸入上的內聯點擊處理程序似乎都在jQuery事件處理程序之前執行。這裏
最簡單的解決辦法是使用普通的input type="button"
而不是ASP:Button
,可惜這不是一個possibilty,因爲這ASP:Button
確實是需要在這種情況下許多其他的事情。
什麼是防止表單提交發生的最佳方法?我想過使用字符串操作在元素的onclick
屬性上添加我的處理程序,但這看起來很髒。我還想避免使用OnClientClick
,因爲這需要我的處理函數公開曝光。有沒有更好的辦法?
當您綁定事件處理函數時,它們將按照它們綁定的順序調用,因此它會先調用內聯函數,然後再調用您的處理函數。關於所有我能想到的是取消綁定默認值,綁定你的,然後重新綁定原始的 – MrOBrian 2012-08-09 20:25:11
添加另一個想法到我的答案 – bUKaneer 2012-08-09 20:28:19