如何在下次尝试之前清除复选框中的旧值?

时间:2016-02-04 14:17:21

标签: javascript jquery

我编写了我的JavaScript代码,以获取带有JSON函数的值,以便在复选框中显示,但每次尝试使用新选项时,复选框中仍然存在旧值。我想在下次尝试之前清除复选框。我在下面的代码中标记了问题区域:

HTML:

    <div class="panel-body">
    <div class="form-group">
        <label for="field-1" class="col-sm-3 control-label" >Select Group</label>
            <div class="col-md-2">
                <select class="form-control" name="perms" onchange="OnSelectionChange(this)">
                    <option>Choice your group</option>
                    {foreach $perms as $perm}
                    <option value="{$perm.pID}">{$perm.title}</option>
                    {/foreach}
                </select>
            </div>
    </div>

    <div class="panel-body">
        <div class="row">
            <div class="col-md-12">
                <strong>Edite Permisions:</strong>
                <br />
                <br />
            </div>
            <div class="col-sm-6" style="width:100%;">  
                <ul class="icheck-list">
                    {foreach $rps as $rp}
                    <li>
                        <input type="checkbox" name="updatePERM[]" id="{$rp.id}" value="{$rp.id}">
                        <label style="padding-left: 5px;vertical-align: middle;" >{$rp.rname}</label> <pre>{$rp.rdes}</pre>
                    </li>
                    {/foreach}
                </ul>
            </div>
        </div>
    </div>                      
</div>

JS:

function OnSelectionChange (select) {
    var selectedOption = select.options[select.selectedIndex];

    var url = "./include/getPerms.php?key="+selectedOption.value+"";
    $.getJSON(url, function(data) {
    $.each(data.rules, function(i, rule) {

        // MY PROBLEM LINE:  HOW I CAN DO THIS ?
        if input:checkbox.val() != rule.id => set attr('checked', false)
        else if input:checkbox.val() == rule.id => set attr('checked', true)
        // HOW I CAN DO THIS ?

        });             
    });
}

1 个答案:

答案 0 :(得分:0)

function OnSelectionChange(select) {
    var selectedOption = select.options[select.selectedIndex];
    var url = "./include/getPerms.php?key=" + selectedOption.value + "";
    $.getJSON(url, function (data) {
    // Default make all checkbox un-checked.
     $("input:checkbox").prop("checked", false)
        $.each(data.rules, function (i, rule) {
          // If rule.id matches with the checkbox values then make those checkbox checked
           $(":checkbox[value="+rule.id+"]").prop("checked",true);
        });
    });