我正在使用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
那我如何調用該函數: <身體的onload = 「JavaScript的:initialisation_formulaire(0);」> – Nowahe 2014-09-19 11:00:59