【发布时间】:2011-04-18 16:34:43
【问题描述】:
在这个线程here 之后,我能够向带有单选按钮和复选框的表单添加验证:如果每个问题至少选择了一个选项,则启用提交按钮。
代码如下:
$('input:submit').attr('disabled',true);
var input_groups = {}
$("input:radio, input:checkbox").each(function(){
$(this).attr('checked', false);
input_groups[this.name] = true;
});
$('input:radio, input:checkbox').change(function() {
var submission = true;
for(group in input_groups){
is_checked = !!$("[name=" + group + "]:checked").length
if(!is_checked){ submission = false;}
}
if (submission){
$("label[for='submit']").html('You are ready to submit!');
$('input:submit').attr('disabled',false);
}
});
它可以工作,但如果我不小心取消选中了一个复选框,提交按钮将保持启用状态...我可能遗漏了一些明显的东西...
有什么建议吗?
谢谢
【问题讨论】:
-
顺便说一句,你的代码可以大大压缩。每当您测试一个布尔值然后在下一个语句中使用相同的布尔值时,都是一个需要压缩的区域。此外,当您达到失败状态(没有理由继续)时,您想跳出 @987654323@ 循环。
-
你说得对,亚当。我试图在优化之前让它工作。
标签: jquery radio-button checkbox