当前位置:  开发笔记 > 编程语言 > 正文

(客户端)禁用提交按钮的最佳方法是什么?

如何解决《(客户端)禁用提交按钮的最佳方法是什么?》经验,为你挑选了2个好方法。

细节:

仅在用户单击提交按钮后但在回发到服务器之前禁用

ASP.NET Webforms(.NET 1.1)

首选jQuery(如果有任何库)

如果表单重新加载(即信用卡失败)必须启用

这不是我必须这样做的必要条件,但如果有一个简单的方法可以做到这一点而不必改变太多,我会这样做.(即如果没有一个简单的解决方案,我可能不会这样做,所以不要担心挖得太深)



1> SpoonMeiser..:

对于所有提交按钮,通过JQuery,它将是:

$('input[type=submit]').click(function() { this.disabled = true; });

或者在表单提交上这样做可能更有用:

$('form').submit(function() {
    $('input[type=submit]', this).attr("disabled","disabled");
});

但是,如果我们对上下文有更多了解,我认为我们可以更好地回答您的问题.

如果这是ajax请求,那么您需要确保在成功或失败时再次启用提交按钮.

如果这是一个标准的HTTP表单提交(除了使用javascript禁用按钮)并且你这样做是为了安全地防止同一表单的多个提交,那么你应该在处理代码的代码中有某种控制提交数据,因为使用javascript禁用按钮可能无法阻止多次提交.



2> nickf..:

你可以这样做:

$('form').submit(function() {
    $(this)
        .find(":submit,:image")             // get all the submit buttons
        .attr({ disabled : 'disabled' })    // disable them
        .end()                              // go back to this form
        .submit(function() {                // change the onsubmit to always reject.
            return false;
        })
    ;
});

这样做的好处:

它将适用于所有表单,以及所有提交方法:

单击提交元素

按回车,或

form.submit()从其他一些代码调用

它将禁用所有提交元素:

它真的很短.

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有