jQuery在选中另一个复选框时禁用一个复选框
我有两个复选框,分别是键和原声吉他。当用户选择一个时,我希望禁用另一个。我已经能够做到这一点,然而,我遇到的问题是,当用户取消选中他们的选择时,另一个仍然处于禁用状态 例如,如果用户选择“键”,“原声吉他”禁用,如果用户取消选中“键”,“原声吉他”仍处于禁用状态-我需要它,以便在未选中任何键时,您可以随时选择其中一个 这是我的密码:jQuery在选中另一个复选框时禁用一个复选框,jquery,checkbox,onchange,Jquery,Checkbox,Onchange,我有两个复选框,分别是键和原声吉他。当用户选择一个时,我希望禁用另一个。我已经能够做到这一点,然而,我遇到的问题是,当用户取消选中他们的选择时,另一个仍然处于禁用状态 例如,如果用户选择“键”,“原声吉他”禁用,如果用户取消选中“键”,“原声吉他”仍处于禁用状态-我需要它,以便在未选中任何键时,您可以随时选择其中一个 这是我的密码: // disable acoustic guitar when keys is selected $("input[class='checkbox keys']")
// disable acoustic guitar when keys is selected
$("input[class='checkbox keys']").on('change', function () {
if ($("input[class='checkbox keys']").length) {
$("input[class='checkbox acou_guit']").prop('disabled',true);
return;
} else {
$("input[class='checkbox acou_guit']").prop('disabled',false);
return;
}
});
// disable keys when acoustic guitar is selected
$("input[class='checkbox acou_guit']").on('change', function () {
if($("input[class='checkbox acou_guit']").length) {
$("input[class='checkbox keys']").prop('disabled',true);
return;
} else {
$("input[class='checkbox keys']").prop('disabled',false);
return;
}
});
通过使用
length
属性,您可能会遇到奇怪的行为。建议改用prop
:
而不是:
if($("input[class='checkbox acou_guit']").length) { }
尝试:
这可能无法通过复制和粘贴解决您的问题。但是,它应该向正确的方向发送信息。在这种情况下,您的代码是错误的。您应该检查所选复选框的长度,而不仅仅是复选框的长度
$("input[class='keys']").on('change', function () {
var checked = $("input[class='keys']:checked").length === 1 ? true : false;
$("input[class='acou_guit']").prop('disabled',checked);
});
// disable keys when acoustic guitar is selected
$("input[class='acou_guit']").on('change', function () {
var checked = $("input[class='acou_guit']:checked").length === 1 ? true : false;
$("input[class='keys']").prop('disabled',checked);
});
如果答案对您有帮助,请将其标记为正确的您是否考虑过使用单选按钮而不是复选框?同意,单选框更有意义,因为在任何时候您只选择了一个选项。顺便说一句,您不需要
返回此特定示例中的代码>语句。为您节省了4个LOC。谢谢大家,我想到了无线电设备,但是这个表单会根据其他选项而改变,例如,如果用户选择了不同的软件包,他们可以同时选择多个仪器。有没有办法通过复选框实现我所需要的?
$("input[class='keys']").on('change', function () {
var checked = $("input[class='keys']:checked").length === 1 ? true : false;
$("input[class='acou_guit']").prop('disabled',checked);
});
// disable keys when acoustic guitar is selected
$("input[class='acou_guit']").on('change', function () {
var checked = $("input[class='acou_guit']:checked").length === 1 ? true : false;
$("input[class='keys']").prop('disabled',checked);
});