取消选中包含条件的复选框

时间:2016-05-24 09:08:01

标签: javascript jquery html checkbox

我想在一个有问题和三个可能答案的网站上进行调查。

问题是我在检查/取消选中时遇到问题,我想只检查一个答案,所以如果用户点击答案并且他已经检查了另一个,那么它只保留最后一个。

以下是我所做的:

$("input:checkbox").click(function() {
    if($(this).is(':checked')){
        var iSurveyId = $(this).closest('div').attr('name');
        var iAnswerId = $(this).closest('p').attr('value');
        var bIsChecked = 'true';

如果用户点击复选框,我将获得我的div名称中的调查ID以及我的段落名称中的答案ID。

我使用的是jQuery 1.1.12,所以我无法使用每个函数作为例子,我不能使用.prop()。

2 个答案:

答案 0 :(得分:0)

您可以使用输入类型广播而不是复选框,以便所有用户只能选择一个答案,或者首先清除所有复选框

$("input:checkbox").click(function() {
     $('input:checkbox').removeAttr('checked');
     $(this).attr('checked', 'checked');
}

上面应该从所有选择框中删除checked属性并将checked属性分配给单击的属性,或者如果您有多个问题,每个问题都有多个答案,您可以将复选框放在div中并将代码更改为:

$("input:checkbox").click(function() {
    $('#div_id input:checkbox').removeAttr('checked');
    $(this).attr('checked', 'checked');
}

答案 1 :(得分:0)

使用这个简单的代码

$("input:checkbox").click(function() {
    var thisChecked = $(this)[0].checked;
    $("input:checkbox").removeAttr('checked');
    
    if (thisChecked)
        $(this).attr("checked", true);
    else 
        $(this).attr("checked", false);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<div>
    <input type="checkbox" />
    <span>Item 1</span>
</div>
<div>
    <input type="checkbox" />
    <span>Item 2</span>
</div>
<div>
    <input type="checkbox" />
    <span>Item 3</span>
</div>
<div>
    <input type="checkbox" />
    <span>Item 4</span>
</div>