仅选择组中的一个复选框

时间:2016-06-06 15:24:22

标签: javascript jquery checkbox

我有很多相同的<div class="checkbox product-option">,其中每四个div都相互属于。

所以1-4是一个组,5-8是一组等。

是否有办法只允许选择组中的1个复选框?

我目前有这段代码,但这适用于所有复选框,而不适用于四人一组。

jQuery:

$('input[type="checkbox"]').on('change', function() {
   $('input[type="checkbox"]').not(this).prop('checked', false);
});

HTML:

<div class="checkbox product-option">
    <label for="addon1">
        <span class="product-option-text">
            <input class="checkbox-row" type="checkbox" name="addons[1]" id="addon1" onclick="prodconfrecalcsummary()">
            <span class="text">Text</span>
        </span>
    </label>
</div>

<div class="checkbox product-option">
    <label for="addon11">
        <span class="product-option-text">
            <input class="checkbox-row" type="checkbox" name="addons[11]" id="addon1" onclick="prodconfrecalcsummary()">
            <span class="text">Text</span>
        </span>
    </label>
</div>

<div class="checkbox product-option">
    <label for="addon12">
        <span class="product-option-text">
            <input class="checkbox-row" type="checkbox" name="addons[21]" id="addon1" onclick="prodconfrecalcsummary()">
            <span class="text">Text</span>
        </span>
    </label>
</div>

<div class="checkbox product-option">
    <label for="addon54">
        <span class="product-option-text">
            <input class="checkbox-row" type="checkbox" name="addons[54]" id="addon1" onclick="prodconfrecalcsummary()">
            <span class="text">Text</span>
        </span>
    </label>
</div>

3 个答案:

答案 0 :(得分:5)

如果您只想在每个组中选择一个项目,那么您应该使用单选按钮而不是复选框。然后用户将期望并理解只有一个项目是可选择的。如果您创建一系列具有相同&#34;名称&#34;的单选按钮;属性,然后浏览器将自动只允许其中一个被选中。

如果您使用复选框,那么即使您使用javascript来实现您的建议,您的用户也可能会感到困惑,因为正常使用复选框是为了允许同时选择多个项目。

答案 1 :(得分:0)

您可以使用id进行选择,然后更改您的jquery代码 $('#yourIdHere').on('change', function() { //Whatever your code... });

答案 2 :(得分:0)

这是吗?放入css选择器

$('input[type="checkbox"].checkbox.product-option').on('change', function() {
    $('input[type="checkbox"].checkbox.product-option').not(this).prop('checked', false);
});

是相同的代码,但使用css选择器。