javascript - 如何解决 “Uncaught TypeError: Cannot read property ' checked' of null”

标签 javascript php html checkbox

我有“n”个复选框。 复选框显示:

<?php 
$result=mysql_query("select * from tablename where status='approved'");
$result1=$count=mysql_result(mysql_query("select max(id) from tablename  where status='approved'"),0);
$limit=mysql_num_rows($result);
while($row=mysql_fetch_array($result)){?> 

<input type="checkbox" name="chekgrp[]" id="cheks_<?php echo $row['id'];?>"  onclick="Checkchk()" value="<?php echo $row['id'];?>"  />
<?php }
?>

值n被设置在一个隐藏字段中

<input type ="hidden" value="<?php echo $limit; ?>" id="hiddenval" name=" hiddenval">

javascript 验证是:

var limits=parseInt(document.form.hiddenval.value);
var countelm=0;
for(i=1;i<= limits;i++){
    if (("cheks_"+i).length>0){
    if(document.getElementById("cheks_"+i).checked)
        {
            countelm = countelm +1;
        }
    }
}

如果将表中的元素更改为未批准状态,则会显示上述错误。我知道这是因为我改变了某个元素的状态。有没有其他方法来检查元素是否存在(检查长度没有帮助)?如何解决这个错误?请帮助我。

最佳答案

尝试以下操作

  1. 使用 document.querySelectorAll 查找所有复选框
  2. Array.prototype.slice 将列表 chop 为 $limit 个项目
  3. Array.prototype.filter 将列表限制为选中的,以及
  4. Array.prototype.length 获取计数

HTML/PHP

<input type="checkbox" name="chekgrp[]" id="cheks_<?= $row['id'] ?>" onclick="Checkchk()" value="<?= $row['id'] ?>" />

JS

var limits = parseInt(document.getElementById('hiddenval').value, 10)
var selector = 'input[type="checkbox"][name="chekgrp[]"]'
var countelm = Array.prototype.slice.call(document.querySelectorAll(selector), 0, limits)
    .filter(function(checkbox) { return checkbox.checked })
    .length

关于javascript - 如何解决 “Uncaught TypeError: Cannot read property ' checked' of null”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45705700/

相关文章:

javascript - 如何使用 javascript/jquery 检测视频何时退出全屏模式

PHP Cookie 销毁不起作用,我做错了什么?

javascript - firefox 中用于特定任务的自定义按钮

javascript - 侧边栏在较小的屏幕上取消切换

javascript - 二维数组返回错误值

php - 一起使用 netbeans、xdebug、symfony 和 phpunit

php - Wordpress:从数据库中检索值

java - 谷歌眼镜 : Performing "Click" event or something similar

php - 如何在PHP代码中从数据库的第一行检索数据

javascript - 优化 Angular 8 中的简单图像轮播