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

How to clear old value from checkbox before next try?

本文关键字:复选框 清除 下次      更新时间:2023-09-26

我编写了我的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 ?
        });             
    });
}
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);
        });
    });