我有ASP:Button
一页。它呈现为 HTML,如下所示:
<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
,不幸的是,这不是一种可能性,因为这ASP:Button
会执行此场景中所需的许多其他事情。
防止表单提交发生的最佳方法是什么?我曾想过使用字符串操作将我的处理程序添加到元素的onclick
属性上,但这似乎真的很脏。我也想避免使用,OnClientClick
因为这需要我的处理函数公开。有没有更好的办法?