简单:
$(document).ready(function() {
var $cbs = $('input[type="checkbox"][name^="checkbox"]').click(function() {
$cbs.not(this).prop('disabled', this.checked);
});
});
演示:http://jsfiddle.net/j6Jpz/
虽然这个想法是为了防止在同一时间被检查我建议它为用户更好,如果你离开已启用,但是当一个自动检查取消的两个复选框其他:
$(document).ready(function() {
var $cbs = $('input[type="checkbox"][name^="checkbox"]').click(function() {
if (this.checked) $cbs.not(this).prop('checked', false);
});
});
演示:http://jsfiddle.net/j6Jpz/1/
注:我使用的选择,'input[type="checkbox"][name^="checkbox"]'
说,找到类型为checkbox的所有投入与开头的名称“复选框”。如果您将一个普通的类class="someClass"
添加到相关输入中,则可将其简化为'input.someClass'
。
请注意,我的代码的任一版本都会自动处理更大的复选框组。
是的,与我目前的表单结构,它将无法使用单选按钮,这就是为什么。你的代码就像一个魅力。谢谢。 – spotlightsnap 2012-07-11 03:30:47
但是,该函数只测试'checkbox1',当checkbox2被选中时它不执行任何操作。 (另外,你可以用一行替换if/else结构:'checkbox2.disabled = checkbox1.checked;'。) – nnnnnn 2012-07-11 03:37:25