【问题标题】:Best way to disable all submit buttons after postback回发后禁用所有提交按钮的最佳方法
【发布时间】:2011-05-10 19:51:53
【问题描述】:

我正在尝试编写代码来禁用页面上的提交按钮(或所有提交按钮)以避免双重回发。

我想生成我自己的回发 javascript 函数(并使用 GetPostbackEventReference 注入回发 javascript),但也许有一些更好的方法可以做到这一点?或者也许有其他方法可以避免双重回发?

更新

我还想找出调用 javascript 的最佳位置,例如如果我在 onclick 按钮处理程序中调用以下脚本,则不会连接按钮的服务器单击事件。

$('input[type=submit]').attr('disabled', 'disabled')

【问题讨论】:

标签: javascript asp.net jquery


【解决方案1】:

jQuery:

$('input[type=submit]').attr('disabled', 'disabled')

否则,遍历所有document.getElementByTagName('input')

最好只对提交的表单的子节点执行此操作?

【讨论】:

  • 这不会停止 a) <button> 元素和 b) 用于提交表单的 Enter 键。如果您只是想防止双击,这可能不是问题,但值得记住的是,此解决方案不是通用解决方案
  • 我还需要一些温和的方式来运行上面的代码。如果我使用 OnClientClick 执行它,那么在回发按钮单击服务器事件期间不会连接。
【解决方案2】:

http://greatwebguy.com/programming/dom/prevent-double-submit-with-jquery/

这应该对你有帮助

   1. $('form').submit(function(){  
   2.     $(':submit', this).click(function() {  
   3.         return false;  
   4.     });  
   5. });  

【讨论】:

【解决方案3】:

这个怎么样:

$('input[type=button]').click(function() {
    $('input[type=button]').each(function() {
        $(this).attr('disabled', 'disabled')
    });
});

任何时候点击任何按钮,表单上的每个按钮都会被禁用。

【讨论】:

    猜你喜欢
    • 2010-09-07
    • 2015-10-08
    • 2023-03-16
    • 1970-01-01
    • 2013-07-29
    • 1970-01-01
    • 1970-01-01
    • 2013-06-11
    • 2013-03-09
    相关资源
    最近更新 更多