选中的复选框属性为true,但不显示tick

时间:2013-07-05 21:05:11

标签: jquery html checkbox

我有两个复选框,我想让它们像单选按钮一样(当时只检查其中一个)。

所以,我很容易找到一个可以解决这个问题的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”,也不会显示勾号:

2 个答案:

答案 0 :(得分:20)

您需要通过prop erty设置检查状态才能达到您想要的效果:

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

jsFiddle here.

答案 1 :(得分:3)

你可以这样试试:

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

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