javascript - 如何防止ASP :Button from posting back from a jQuery click handler

标签 javascript jquery asp.net

我的页面上有一个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 因为这需要公开公开我的处理程序函数。有更好的办法吗?

最佳答案

您是否尝试过将 OnClientClick="return false;" 属性添加到您的 aspx 按钮控件中?

不用担心,看看这篇文章,它提供了一个 javascript 事件卸载器脚本:Is it possible to remove all event handlers of a given element in javascript?

我认为您对最后一个方法 DomLib.prototype.removeEventsByTypeEx 感兴趣

关于javascript - 如何防止ASP :Button from posting back from a jQuery click handler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11891249/

相关文章:

javascript - 如何使 JavaScript 链接可通过中键单击打开?

php - jQuery 简单表单提交无需重新加载

javascript - 如何创建更新模型属性的按钮?

asp.net - 不向没有正确使用网站的用户提供优雅的错误是不是很糟糕?

javascript - 如何在 Highcharts 中获取当前钻取的 ID

javascript - 我无法让我的待办事项列表正常工作

javascript - 使用按键事件和 jquery 将文本放入输入元素

c# - 序列化一个通用类型的 FaultException

c# - OR LIKE sql查询 bool 错误

javascript - 当 URL 不完整时,在新选项卡中打开 URL 会生成 404