【问题标题】:How do I set a group of checkboxes using values?如何使用值设置一组复选框?
【发布时间】:2014-09-30 17:47:57
【问题描述】:

所以我有一组复选框,例如:

<input type="checkbox" id="cbl1" name="cbl" value="1" />
<input type="checkbox" id="cbl2" name="cbl" value="2" />
<input type="checkbox" id="cbl3" name="cbl" value="3" />
<input type="checkbox" id="cbl4" name="cbl" value="4" />
<input type="checkbox" id="cbl5" name="cbl" value="5" />
<input type="checkbox" id="cbl6" name="cbl" value="6" />
<input type="checkbox" id="cbl7" name="cbl" value="7" />
<input type="checkbox" id="cbl8" name="cbl" value="8" />

现在我有一个值数组:

var values = ["2", "4", "7", "8"];

现在我如何让我的复选框组看起来像这样:

<input type="checkbox" id="cbl1" name="cbl" value="1" />
<input type="checkbox" id="cbl2" name="cbl" value="2" checked="checked" />
<input type="checkbox" id="cbl3" name="cbl" value="3" />
<input type="checkbox" id="cbl4" name="cbl" value="4" checked="checked" />
<input type="checkbox" id="cbl5" name="cbl" value="5" />
<input type="checkbox" id="cbl6" name="cbl" value="6" />
<input type="checkbox" id="cbl7" name="cbl" value="7" checked="checked" />
<input type="checkbox" id="cbl8" name="cbl" value="8" checked="checked" />

我必须使用两个 for 循环来执行此操作吗?在纯 javascript 或 jquery 中是否有不需要循环两次的方法?

【问题讨论】:

    标签: javascript jquery checkbox jquery-selectors


    【解决方案1】:

    API docs demo

    var values = ["2", "4", "7", "8"];
    
    $('input[name="cbl"]').val(values)
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input type="checkbox" id="cbl1" name="cbl" value="1" />
    <input type="checkbox" id="cbl2" name="cbl" value="2" />
    <input type="checkbox" id="cbl3" name="cbl" value="3" />
    <input type="checkbox" id="cbl4" name="cbl" value="4" />
    <input type="checkbox" id="cbl5" name="cbl" value="5" />
    <input type="checkbox" id="cbl6" name="cbl" value="6" />
    <input type="checkbox" id="cbl7" name="cbl" value="7" />
    <input type="checkbox" id="cbl8" name="cbl" value="8" />

    【讨论】:

    • 哇,我真的不知道这是可能的。 +1
    【解决方案2】:

    从数组中创建一个选择器,并检查它们

    $( '#cbl' + values.join(', #cbl') ).prop('checked', true);
    

    FIDDLE

    这是使用 ID,因为这是选择元素比选择值更好的方法,如果您仍想使用值,则可以使用相同的概念

    $( '[value="' + values.join('"], [value="') + '"]').prop('checked', true);
    

    FIDDLE

    或者你可以过滤

    $('input[type="checkbox"]').filter(function() {
        return $.inArray(this.value, values) != -1;
    }).prop('checked', true);
    

    【讨论】:

    • 看,没有循环! :) +1
    • 按值选择,如果值是数组中的值
    猜你喜欢
    • 1970-01-01
    • 2022-07-11
    • 1970-01-01
    • 1970-01-01
    • 2014-09-20
    • 2016-07-30
    • 1970-01-01
    • 1970-01-01
    • 2020-05-22
    相关资源
    最近更新 更多