我在页面上有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