getElementById在代码中返回null但在控制台中工作
问题描述:
我正在使用javascript从保存的值填充html表单。getElementById在代码中返回null但在控制台中工作
我必须检查一个复选框的表,所以我使用一个PHP脚本来生成一个js函数,我稍后执行。
for($i = 0; $i < count($day_pos) - 1; $i++)
{
if ($day_pos[$i + 1] - $day_pos[$i] > 7)
{
if ($day_pos[$i + 1] - $day_pos[$i] > 8)
{
echo ("document.getElementById(\"".$rdv_days[$i * 2]."\").checked = true;");
echo ("\ndocument.getElementById(\"".$rdv_days[$i * 2 + 1]."\").checked = true;");
}
else if ($uf_hours[$day_pos[$i] + 5] == "sur")
{
echo ("document.getElementById(\"".$rdv_days[$i * 2]."\").checked = true;");
}
else
{
echo ("document.getElementById(\"".$rdv_days[$i * 2 + 1]."\").checked = true;");
}
}
echo("\n");
}
echo ("</script>");
此功能的一切都工作得很好。
$ rdv_days是一个包含复选框的所有ID的数组。
当我加载表单页面,它会引发我一个错误:
Uncaught TypeError: Cannot set property 'checked' of null
的错误是在哪里做的getElementById在我的js函数行。
但是,当我在chrome中使用调试器控制台时,会中断它在失败中的行并在控制台中评估表达式,它工作得很好。
我已经检查过,如果id的字符串不包含任何隐藏字符,它不会。
我真的不明白为什么它无法找到元素。
感谢您的时间
编辑:
这里是
document.getElementById("rdvMatLun3").checked = true;
document.getElementById("rdvApLun3").checked = true;
生成的代码(只是一个部分,该网页是4000线),这里是与后来关联的表在页面中
<td>
<input type='checkbox' id='rdvMatLun3' name='rdvMatLun3' value='1'/>RDV</td>
</td>
在执行JS代码的时间点,该元素很可能不存在。 – CBroe 2014-09-19 10:58:57
不知道这可是试着给这里\ N'后''空间\ ndocument.getElementById' – karan3112 2014-09-19 11:00:17
那我如何调用该函数: – Nowahe 2014-09-19 11:00:59