Javascript Jquery复选框选中和取消选中不正常工作
我有一个脚本,它应该根据从下拉列表中选择的用户名来选中和取消选中以下html表单:Javascript Jquery复选框选中和取消选中不正常工作,javascript,jquery,html,checkbox,Javascript,Jquery,Html,Checkbox,我有一个脚本,它应该根据从下拉列表中选择的用户名来选中和取消选中以下html表单: <div> <select name="user_name" id="user_name" class="user_name form-control"> <option>Please select : </option> <?php foreach ($system_users as $value) {
<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);
}
}
});
});
$(“#用户名”)。更改(函数(){
var user_id=this.value;
$.ajax({
键入:“获取”,
url:“管理员/获取用户权限/”+用户id,
数据类型:“JSON”,
成功:功能(响应){
$(“输入:复选框”).attr(“选中”,false);
对于(i=0;i
我遇到的问题是,当我选择用户名时,复选框没有被选中,因为行:
$(“输入:复选框”).attr(“选中”,false)代码>但是当我删除它时,它会检查它们,但不会删除以前选中的复选框。我如何解决这个问题 使用prop
而不是attr
。将代码更改为:
$("input:checkbox[value=" + value + "]").prop("checked", true);
$("input:checkbox[value=" + value + "]").prop("checked", true);
你必须使用而不是。将代码更改为:
$("input:checkbox[value=" + value + "]").prop("checked", true);
$("input:checkbox[value=" + value + "]").prop("checked", true);
使用.prop(“checked”,true)
而不是.attr(..
如果你看一下这个:,它说的是新的jQuery 1.6.1的发布,他们已经改变了.attr()
处理布尔值的方式。好的。现在有意义了。请始终注意解释操作码更改的原因。这很有意义。仅仅代码不是答案。