我有一个将大文件上传到服务器的表单。像这样:
<form id="myform" action="myaction.php">
<p>
<!--fields -->
</p>
<input type="submit" class="submit" value="Send" />
</form>
我需要阻止用户在之前的处理未就绪时重新提交表单。如何在处理前禁用提交按钮并在提交操作后启用按钮?
答案 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;}">