【发布时间】:2010-10-12 10:42:16
【问题描述】:
当我的表单没有通过验证时,我想禁用表单的提交功能。
我可以通过禁用提交按钮来做到这一点,但这会使回车键处于未选中状态。
我可以设置 .submit(return false);但之后我无法重新启用它。
有什么建议吗?
【问题讨论】:
标签: jquery validation
当我的表单没有通过验证时,我想禁用表单的提交功能。
我可以通过禁用提交按钮来做到这一点,但这会使回车键处于未选中状态。
我可以设置 .submit(return false);但之后我无法重新启用它。
有什么建议吗?
【问题讨论】:
标签: jquery validation
只是 Pim 的简化版(编辑以提取 James 的贡献):
$('#form').submit(formValidated);
【讨论】:
我做了以下工作(禁用提交按钮和表单提交):
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');
}
【讨论】:
在提交方法里面做检查怎么样:
$('#form').submit (function() {
if(formValidated())
return true;
return false;
});
【讨论】:
只是尼克的原始答案的简化:
$('#form').submit(formValidated);
【讨论】:
这是另一种可能的解决方案:
$('#form').change(function() {
(isValid($('#form')) ? $('#submitBtn').attr('disabled',false) : $('#submitBtn').attr('disabled',true)
});
当然,isValid() 会检查您的所有 $('#form') 元素是否符合您的验证规则。我就是这样做的。
【讨论】:
不是直接调用提交函数,而是调用一个中间函数并在那里进行检查。
即
var isSubmitable = false;
function submitForm() {
if(isSubmitable) {
myform.submit();
}
}
【讨论】: