12

我有两个复选框,我想让它们表现得像单选按钮(有时只选中一个)。

所以,我很容易找到了一个可以解决问题的 jQuery 解决方案:

$("input:checkbox").click(function(){
    var group = "input:checkbox[name='"+$(this).attr("name")+"']";
    $(group).attr("checked",false);
    $(this).attr("checked",true);
});

HTML 如下所示:

<div class="radio">
    <label for="q_is_active_true">Is active</label>
    <input name="radio_buttons" type="hidden" value="0"><input id="q_is_active_true" name="radio_buttons" type="checkbox" value="1">
    <label for="q_is_active_false">Is not active</label>
    <input name="radio_buttons" type="hidden" value="0"><input id="q_is_active_false" name="radio_buttons" type="checkbox" value="1">
</div>

但是当我点击其中一个复选框时,即使它的“check”属性设置为“checked”,也不显示勾选:

4

2 回答 2

26

您需要通过其属性设置检查状态实现您想要的:

$("input:checkbox").click(function(){
    var group = "input:checkbox[name='"+$(this).attr("name")+"']";
    $(group).prop("checked", false);
    $(this).prop("checked", true);
});

jsFiddle在这里。

于 2013-07-05T21:07:28.440 回答
5

你可以这样试试:

$('input[name=checkBoxName]').parents('span').addClass("checked");
$("input[name=checkBoxName]").prop('checked', 'checked');

第一行是在复选框中显示勾号,第二行是实际检查它。

于 2015-04-09T19:14:06.307 回答