首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >禁用表单提交上的提交按钮

禁用表单提交上的提交按钮
EN

Stack Overflow用户
提问于 2011-04-17 10:32:21
回答 14查看 182.8K关注 0票数 83

我写了这段代码,在点击后禁用我网站上的提交按钮:

代码语言:javascript
复制
$('input[type=submit]').click(function(){
    $(this).attr('disabled', 'disabled');
});

不幸的是,它不会发送表单。我该如何解决这个问题呢?

编辑我想绑定提交,而不是表单:)

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2011-04-17 10:33:48

Do it onSubmit()

代码语言:javascript
复制
$('form#id').submit(function(){
    $(this).find(':input[type=submit]').prop('disabled', true);
});

实际发生的情况是,在按钮实际触发提交事件之前,您完全禁用了该按钮。

您可能还应该考虑使用ID或CLASSes命名元素,这样就不会在页面上选择所有submit类型的输入。

Demonstration: http://jsfiddle.net/userdude/2hgnZ/

(注意,我使用了preventDefault()return false,所以在本例中表单不会实际提交;在使用时请不要使用它。)

票数 160
EN

Stack Overflow用户

发布于 2014-10-20 18:57:29

如果某人在 Chrome**:**中遇到问题,则使用

要解决这个问题,需要在<form>元素中使用onSubmit标记来设置submit按钮disabled。这将允许Chrome在按下按钮后立即禁用该按钮,并且表单提交仍将继续...

代码语言:javascript
复制
<form name ="myform" method="POST" action="dosomething.php" onSubmit="document.getElementById('submit').disabled=true;"> 
     <input type="submit" name="submit" value="Submit" id="submit"> 
</form>
票数 27
EN

Stack Overflow用户

发布于 2014-05-06 09:16:47

禁用的控件不提交它们的值,这无助于知道用户是否单击了保存或删除。

所以我将按钮值存储在一个被提交的隐藏的。隐藏项的名称与按钮名称相同。我把我所有的按钮都叫做button

例如,<button type="submit" name="button" value="save">Save</button>

基于此,我找到了here。只需将单击的按钮存储在一个变量中。

代码语言:javascript
复制
$(document).ready(function(){
    var submitButton$;

    $(document).on('click', ":submit", function (e)
    {
        // you may choose to remove disabled from all buttons first here.
        submitButton$ = $(this);
    });

    $(document).on('submit', "form", function(e)
    {
        var form$ = $(this);
        var hiddenButton$ = $('#button', form$);
        if (IsNull(hiddenButton$))
        {
            // add the hidden to the form as needed
            hiddenButton$ = $('<input>')
                .attr({ type: 'hidden', id: 'button', name: 'button' })
                .appendTo(form$);
        }
        hiddenButton$.attr('value', submitButton$.attr('value'));
        submitButton$.attr("disabled", "disabled");
    }
});

这是我的IsNull函数。使用或替换您自己的版本来代替IsNull或undefined等。

代码语言:javascript
复制
function IsNull(obj)
{
    var is;
    if (obj instanceof jQuery)
        is = obj.length <= 0;
    else
        is = obj === null || typeof obj === 'undefined' || obj == "";

    return is;
}
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5691054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档