Javascript 在页面完全呈现之前锁定所有提交按钮
请问如何使用jquery锁定所有Javascript 在页面完全呈现之前锁定所有提交按钮,javascript,jquery,Javascript,Jquery,请问如何使用jquery锁定所有默认情况下,您的提交按钮的disabled属性设置为true: <input type="submit" disabled="disabled" /> $(文档).ready(函数(){ $(“#表单提交”).removeAttr('disabled'); }); jQuery $(document).ready(function(){ $(":button,:submit").removeAttr("disabled"); }); H
默认情况下,您的提交按钮的disabled属性设置为true:
<input type="submit" disabled="disabled" />
$(文档).ready(函数(){
$(“#表单提交”).removeAttr('disabled');
});
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">
由于用例的原因,我可能会以不同的方式处理它。我不会实际禁用按钮,而是在页面加载之前不允许提交操作工作。这不需要对现有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>
//通过从onclick处理程序返回false来阻止所有提交按钮工作
$('input:submit').live('click',函数(){
返回false;
});
//加载所有内容后,通过“模具”移除“活动”限制
$(窗口)。加载(函数(){
$('input:submit').die();
});
更新:如果您想让此解决方案正常工作,请忘记将此标签和脚本
标签放在
中以加载jQuery库。(谢谢你提醒我迈克·谢洛夫)。你不能做点类似的事情吗
window.onsubmit=function(){return false;}
window.onload=function(){window.onsubmit='';}
我不确定事件冒泡将如何与onsubmit一起工作。我得测试一下。另外,我不知道jquery,所以我不知道如何集成它。它实际上是disabled=“disabled”编辑了答案以显示disabled=“disabled”-这是一个很好的答案。@Kai,不,这正是OP想要的,即在页面完全呈现后启用元素。@Marko,实际上,disabled将与任何值一起工作,甚至“false”!但是,正确的值仍然是“disabled”,所以在你的评论中+1。谢谢迈克,我通常就是这么做的。您可以忽略该属性的值:)但是,这仍然取决于在完全呈现页面之前jquery的加载!如果jQuery在您的应用程序中,它将在呈现页面之前加载。事实上,页面呈现将在加载时停止。那么,如果jQuery在头部,那么剩下的练习就没有用了。:)@迈克:剩下的练习怎么没用?在这个用例中,呈现一个禁用了所有控件的页面是个坏主意,除非应用程序强制用户启用JS。在中加载JS是避免将无用页面呈现给那些启用了w/o 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>
window.onsubmit=function(){return false;}
window.onload=function(){window.onsubmit='';}