当我的表单未验证时,我想禁用表单的提交功能。 我可以通过禁用提交按钮来执行此操作,但这会使输入键保持未选中状态 我可以设置.submit(返回false);但后来我再也无法重新启用它了。
有什么建议吗?
答案 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')
元素是否符合您的验证规则。我就是这样做的。