检查多个Checkbox jQuery

时间:2016-12-23 15:12:28

标签: javascript php jquery json

我有这个代码来取回一个json字符串:

$.getJSON("<?php echo BASE_URL; ?>/editTask.php?ID="+tid,function(result){
        $.each(result.staff, function() { 
            $("#checkbox[value=" + this + "]").prop('checked');
        });
});

json看起来像这样

{"staff":[13,17,15]}

我有一个像这样的PHP代码段

<div id="checkbox" class="checkbox" style="max-height:150px;overflow:auto;">
<?php
for ($i = 0; $i < count($user_list); ++$i) {
  echo '<label>'
      .'<input type="checkbox" name="tasksUser[]" 
           value="'.$user_list[$i]['uid'].'">'
      .$user_list[$i]['surname'].', '.$user_list[$i]['forename']
      .'</label><br />';
}
?>
</div>

我希望检查每个具有 result.staff 值的复选框。但我认为我的每个部分都有错误。但是在Firefox控制台中没有显示错误。

你能帮帮我吗?

2 个答案:

答案 0 :(得分:1)

是的。$ .each函数存在问题。

 $.each(result.staff, 
     function() { 
         $("#checkbox[value=" + this + "]").prop('checked');
            ^
            Here is the issue.
     });
 });

由于您没有与元素相关联的任何ID或类,您可以使用元素名称/ +类型

访问它

您必须用

替换您的代码
$("input[type='checkbox'][value=" + this + "]").prop("checked", true);

在这里,我访问所有可用值的复选框,并将设置设置为true。

答案 1 :(得分:0)

您正在使用此选择器查找复选框:

$("#checkbox[value...]")

但是,选择器中的#符号会查找具有ID的元素。

PHP循环中的复选框没有指定的ID或类,因此您可以选择它们:

#(":checkbox[value...]")