簡體   English   中英

jQuery Checkbox Check和Uncheck不能正常工作

[英]Jquery Checkbox Check and Uncheck not working well

我有以下腳本,應該根據從下拉列表中選擇的用戶名檢查和取消選中以下html表單:

<div>
    <select name="user_name" id="user_name" class="user_name form-control">
        <option>Please select : </option>
        <?php foreach ($system_users as $value) {
            ?>
            <option value="<?php echo $value['id']; ?>"><?php echo $value['user_name']; ?></option>
            <?php
        }
        ?>
    </select>
</div>

<?php foreach ($reports_functions as $value) {
    ?>
    <input type="checkbox" name="functions[]" id="functions" value="<?php echo $value['id']; ?>"  class="form-control functions reports_functions" /> <?php echo $value['name']; ?>
    <hr>
    <br />

    <?php
}
?>

以下是我的jquery腳本:

$("#user_name").change(function () {
    var user_id = this.value;
    $.ajax({
        type: "GET",
        url: "<?php echo base_url(); ?>admin/get_user_permissions/" + user_id,
        dataType: "JSON",
        success: function (response) {
             $("input:checkbox").attr("checked", false);

            for (i = 0; i < response.length; i++) {
                var value = response[i].function_id;
                $("input:checkbox[value=" + value + "]").attr("checked", true);
            }
        }
    });
});

我遇到的問題是,當我選擇用戶名時,由於以下行而未選中該復選框: $("input:checkbox").attr("checked", false); 但是,當我刪除它時,它會檢查它們,但不會刪除以前選中的復選框。 我該如何解決這個問題?

使用prop而不是attr 將代碼更改為:

$("input:checkbox[value=" + value + "]").prop("checked", true);

您必須使用prop()而不是attr() 將代碼更改為:

$("input:checkbox[value=" + value + "]").prop("checked", true);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM