在页面完全呈现之前锁定所有提交按钮

时间:2010-07-06 02:53:34

标签: javascript jquery

我可以知道如何使用jquery来锁定所有<input type="submit/button" ..并且仅在页面完全呈现时才允许提交吗?

5 个答案:

答案 0 :(得分:11)

由于用例,我可能采用不同的方法。而不是实际禁用按钮,我只是不允许提交操作工作,直到页面加载。这不需要对现有HTML进行任何更改,并且当禁用JS时,您的页面将不会变得无用:

<script>
   // Keep all submit buttons from working by returning false from onclick handlers
   $('input:submit').live('click', function () {
      return false;
   });

   // After everything loads, remove the the "live" restriction via "die"
   $(window).load(function(){
       $('input:submit').die();
   });
</script>

更新:如果您希望此解决方案正常运行,请忘记提及将此script标记加载到<head>中的jQuery库。 (感谢您提醒我Mike Sherov )。

答案 1 :(得分:5)

默认情况下,您的提交按钮将disabled属性设置为true:

<input type="submit" disabled="disabled" /> 

然后,一旦页面加载,您就可以:

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

答案 2 :(得分:2)

<强>的jQuery

$(document).ready(function(){
  $(":button,:submit").removeAttr("disabled");  
});

<强> HTML

<input type="button" id="button1" value="Button 1" disabled="disabled">
<input type="button" id="button2" value="Button 2" disabled="disabled">
<input type="button" id="button3" value="Button 3" disabled="disabled">
<input type="submit" id="submit" value="Submit" disabled="disabled">

答案 3 :(得分:1)

<input id="form-submit" type="submit" disabled="disabled" value="Submit" />

$(document).ready(function() {
    $("#form-submit").removeAttr('disabled');
});

答案 4 :(得分:0)

你不能做像

这样的事吗
window.onsubmit=function(){return false;}
window.onload=function(){window.onsubmit='';}

我不确定事件冒泡如何与onsubmit一起使用。我得测试一下。另外,我不知道jquery所以我不确定如何整合它。