使用jquery禁用/启用整个表单的提交

时间:2009-03-10 14:40:29

标签: jquery validation

当我的表单未验证时,我想禁用表单的提交功能。 我可以通过禁用提交按钮来执行此操作,但这会使输入键保持未选中状态 我可以设置.submit(返回false);但后来我再也无法重新启用它了。

有什么建议吗?

6 个答案:

答案 0 :(得分:13)

只是Pim的简化(编辑以提升詹姆斯的贡献):


$('#form').submit(formValidated);

答案 1 :(得分:7)

我做了以下工作(禁用提交按钮和表单提交):

var condition = true; //check whatever you like
if(condition)
    $('input[type=submit]', this).attr('disabled', 'disabled');
    $('form').bind('submit',function(e){e.preventDefault();});
}else{
    $('input[type=submit]', this).removeAttr('disabled', 'disabled');
    $('form').unbind('submit');
}

答案 2 :(得分:5)

如何在submit方法中进行检查:

$('#form').submit (function() {
 if(formValidated())
  return true;
 return false;
});

答案 3 :(得分:2)

简化Nick的原始答案:

$('#form').submit(formValidated);

答案 4 :(得分:0)

而不是直接调用submit函数调用中间函数并在那里进行检查。

即。

var isSubmitable = false;

function submitForm() {
   if(isSubmitable) {
       myform.submit();
   }
}

答案 5 :(得分:0)

这是另一种可能的解决方案:

$('#form').change(function() {
    (isValid($('#form')) ? $('#submitBtn').attr('disabled',false) : $('#submitBtn').attr('disabled',true)
});

当然,isValid()会检查您的所有$('#form')元素是否符合您的验证规则。我就是这样做的。