临时禁用提交按钮

时间:2011-06-01 12:58:04

标签: javascript jquery

我有一个将大文件上传到服务器的表单。像这样:

<form id="myform" action="myaction.php">
  <p>
    <!--fields -->
  </p>
  <input type="submit" class="submit" value="Send" />
</form>

我需要阻止用户在之前的处理未就绪时重新提交表单。如何在处理前禁用提交按钮并在提交操作后启用按钮?

7 个答案:

答案 0 :(得分:2)

尝试

$("input.submit").attr('disabled', 'disabled');

然后

$("input.submit").removeAttr('disabled');

答案 1 :(得分:2)

从版本1.6开始,在jQuery中执行此操作的正确方法是使用新的prop()方法。

同样重要的是,您将事件附加到表单的提交事件,而不是提交按钮本身。这样,如果有人在填写表单时点击进入,就像我确定我们都这样做,按钮仍然会被禁用。

正确的代码:

$("#myform").submit(function() {
    $("#myform .submit").prop('disabled', true);
}

如果你真的想要多次阻止对提交表单的访问,你也会停止提交表单,而不仅仅是禁用按钮:

var myform = $("#myform");
myform.submit(function() {
    if($.data(myform.get(0), 'submitting') {
        return false;
    }

    $.data(myform.get(0), 'submitting', true);
    $(".submit", myform).prop('disabled', true);
});

所有其他解决方案都错了! :)

开个玩笑,他们也会工作,但这会抓住更多特殊逻辑并正确处理财产。

答案 2 :(得分:1)

您可以在点击后将属性disabled="true"添加到元素中。

$('.submit').click(function(){$(this).attr('disabled',true)});

<强> Live Demo

答案 3 :(得分:1)

在JQuery中你可以像

那样做
$(".submit").click(function() {
  $(".submit").attr("disabled","disabled");
  //Post your form here..
});

答案 4 :(得分:0)

你可以像这样在jquery中禁用:

$(".submit").attr("disabled","disabled");

答案 5 :(得分:0)

假设你有jQuery可用。

<form id="myform" action="myaction.php" onsubmit="submitForm();">
  <p>
    <!--fields -->
  </p>
  <input id="submit_button" type="submit" class="submit" value="Send" />
</form>

<script>
    function submitForm(){
         $("#submit_button").attr("disabled","disabled");
    }
</script>

答案 6 :(得分:0)

您可以像这样禁用双重表单提交:

<form id="myform" action="myaction.php" onsubmit="this.onsubmit=function(){return false;}">