我有一个简单的表单,包含三到四个输入字段和一个提交按钮。
要实现的功能:在单击“提交”按钮时,应禁用“提交”按钮,以便不会执行任何其他单击按钮。我无法隐藏按钮。
现在我正在使用jquery / javascript禁用提交按钮,请求也会被禁用&表格没有在CHROME / IE8中发布。
任何解决方案???
编辑:
代码:
$('#submit').attr('disabled', true); OR $('#submit').prop('disabled', true);// for IE
我甚至尝试了$('#submit').attr('disabled', 'disabled');
但结果相同。
答案 0 :(得分:3)
你说你无法隐藏按钮,但这就是你需要的答案。
当我遇到这个问题时,我隐藏了按钮并用相同尺寸的小“加载”微调器图形替换它。
这涉及向用户提供关于发生的事情的合理反馈以及解决禁用按钮问题的问题。
如果您确实需要按钮保持原位但禁用,那么您可以使用相同的技术隐藏真实按钮并在其位置显示另一个看起来相同但被禁用的按钮。
顺便说一句,当我遇到这个问题时,并不是表格根本没有发布;只是浏览器在其发布的字段中没有包含禁用按钮。如果您的后端脚本依赖于作为已发布值之一的按钮,这显然是一个问题。如果这是你发生的方式,那么另一个解决方案是拥有一个隐藏字段,并在禁用按钮时将按钮值复制到其中。然后,这仍然会在没有发布禁用按钮的情况下提交表单,但您需要的值将隐藏在隐藏字段中。
希望有所帮助。
答案 1 :(得分:0)
- 提交表单。
$(document).ready(function(){
$('#submit-button-id').click(function(e) {
//stop normal submit
e.preventDefault();
//disable button
$(this).attr('disabled','disabled');
//submit form
$('#form-id').submit();
});
});
这也有效。
$(document).ready(function(){
$('#form-id').submit(function(e) {
e.preventDefault();
somefunction();
});
});
function somefunction() {
$('#form-id').unbind('submit');
$('#submit-button-id').attr('disabled','disabled');
$('#form-id').submit();
}