按Id检查复选框


Checking a checkbox by Id

我使用下面的代码根据复选框的Id和存储在数组中的值来选中一些复选框。因此,如果数组有一个值,相应的复选框应该被选中。

for($k=0;$k<count($array_ids);$k++){
     echo'<script type="text/javascript">
    var cb = document.getElementsById("id_'.$array_ids[$k].'");
    cb.checked = true;
</script>';
}

这是复选框的代码:

<input type="checkbox" id="id_'.$array_ids[$k].'" name="'.$array_ids[$k].'" value="checked" class= "My_class" onchange="add_on_textBox(this,'''.$array_ids[$k].''',''My_class'')">

$array_ids的var_dump结果:

array(2) {
  [0]=>
  string(5) "Name1"
  [1]=>
  string(5) "Name2"
}

代码不工作。我很确定我错过了什么。

由于ID在页面中是唯一的,因此没有复数形式的getElementById()

您正在使用getElementsById()…拆下s

这应该在浏览器开发工具控制台抛出错误,这也会给你提示问题在哪里。

必须将开始和结束<script>标记置于for循环之外:

    echo'<script type="text/javascript">';
    for($k=0;$k<count($array_ids);$k++){

        echo 'var cb = document.getElementsById("id_'.$array_ids[$k].'");
        cb.checked = true;';

    }
    echo '</script>';