<input type="checkbox" name="Rates">Rates<br />
<input type="checkbox" name="RatesSpecific">Rates (All-In-Rate, PV01)<br />
这些需要保留复选框(因为不仅仅是这2个)。但是,如何将JQuery事件设置为一次仅检查其中一个事件,并在检查另一个事件时将另一个事件变为灰色?
答案 0 :(得分:3)
这使得checkbox元素就像一个单选按钮,但它们需要是兄弟元素。
$("input[type=checkbox]").change(function(){
if($(this).prop('checked')){
$(this).siblings("input[type=checkbox]").prop('checked', false);
}
});
也许您应该考虑使用单选按钮?
答案 1 :(得分:1)
为他们提供ID属性,然后使用
$(function() {
$("#rates").change(function() {
updateCheckBoxes();
});
$("#ratesSpecific").change(function() {
updateCheckBoxes();
});
});
function updateCheckBoxes() {
if ($("#rates").val()) {
$("#ratesSpecific").attr("disabled", "disabled");
} else {
$("#ratesSpecific").removeAttr("disabled");
}
if ($("#ratesSpecific").val()) {
$("#rates").attr("disabled", "disabled");
} else {
$("#rates").removeAttr("disabled");
}
}
答案 2 :(得分:0)
查看这个小提琴页面:http://jsfiddle.net/h682v/1/
我在那里放了几个例子,包括基于另一个的状态禁用一个。
请注意,一个部分会根据其他部分取消选中(任务取消选中会禁用底部复选框并取消选中一个),而另一个部分只会禁用。检查所有顶部(*任务),然后底部两个是活动的。
在这一个:http://jsfiddle.net/h682v/2/中,它也取消选中最后一个并在取消选中任何前一个时禁用它。
编辑:请注意,如果您添加更多复选框,我会这样做,他们会得到正确处理 - 希望这会有所帮助,因为你说你也有“其他”复选框。