Javascript-对象引用返回null,即使它应该为';T

Javascript-对象引用返回null,即使它应该为';T,javascript,dom,null,Javascript,Dom,Null,我有这个: var strBox = document.getElementById("txtSTR"); var strModBox = document.getElementById("txtSTRMod"); var refBox = document.getElementById("txtREF"); var refModBox = document.getElementById("txtREFMod"); var fortBox = document.getElementById("t

我有这个:

var strBox = document.getElementById("txtSTR");
var strModBox = document.getElementById("txtSTRMod");
var refBox = document.getElementById("txtREF");
var refModBox = document.getElementById("txtREFMod");
var fortBox = document.getElementById("txtFOR");
var forModBox = document.getElementById("txtFORMod");
var intBox = document.getElementById("txtINT");
var intModBox = document.getElementById("txtINTMod");
这些变量都指向HTML文档中的文本框(只读)

它们依赖于使用以下数组填充其.value:

//0-STR, 1-REF, 2-FOR, 3-INT, 4-JUD, 5-CHA, 6-WIL, 7-TOU
var charAttsAR = ["8","8","8","8","8","8","8","8"];
它们由名为popDefDat()的函数手动填充相关数组项,如下所示:

strBox.value = charAttsAR[0];
strModBox.value = modSetter(charAttsAR[0]);

refBox.value = charAttsAR[1];
refModBox.value = modSetter(charAttsAR[1]);

fortBox.value = charAttsAR[2];
forModBox.value = modSetter(charAttsAR[2]);

intBox.value = charAttsAR[3];
intModBox.value = modSetter(charAttsAR[3]);
……等等

我的问题是strBox、stromdbox、refBox和refModBox都可以很好地初始化它们的数据。然而,在fortBox,它抛出“fortBox为空”,我不知道为什么。代码是相同的,我在标记结束之前加载了脚本,并且我还有:

//initialise default data when page loads
window.onload = popDefDat()
老实说,我被困住了。谢谢你的建议

以下是html:

<form id="form3" name="form3" method="post" onsubmit="return false" action="">    
<p><label></label>&nbsp;
<label for="lblHeadATT"></label>

<input name="lblHeadATT" type="text" disabled="disabled" id="lblHeadATT" value="Points" readonly="readonly" />

<label for="lbHeadMOD"></label>

<input name="lbHeadMOD" type="text" disabled="disabled" id="lbHeadMOD" value="Mod" readonly="readonly" />

<label for="txtPointBuy"></label>

<input name="txtPointBuy" type="text" id="txtPointBuy" readonly="readonly" />


强度:

反射:

坚韧:

智力: 我还没有为其他文本框和按钮编写标签,因为我希望在继续之前解决这个问题


谢谢

您没有任何
id=“txtFOR”
输入。您有
name=“txtFOR”id=“txtREF”
document.getElementById(“txtFOR”)
-在您的代码中哪里有具有该
id的元素?你希望找到哪种元素?为什么?专业提示:无论何时重复同一行超过两次,都应该将其放入函数/使用循环/使用数组。您需要更改为
<p>Strength: 
<label for="txtSTR"></label>
<input name="txtSTR" type="text" id="txtSTR" readonly="readonly" />
<label for="txtSTRMod"></label>
<input name="txtSTRMod" type="text" id="txtSTRMod" readonly="readonly" /> 

<input type="button" name="Btn_StrMinus" id="Btn_StrMinus" value="-" onclick="FNCstrSub()" />

<input type="button" name="Btn_StrPlus" id="Btn_StrPlus" value="+" onclick="FNCstrPlus()"/>
<p>Reflex:
<label for="txtREF"></label>
<input name="txtREF" type="text" id="txtREF" readonly="readonly" />
<label for="txtREFMod"></label>
<input name="txtREFMod" type="text" id="txtREFMod" readonly="readonly" />

<input type="button" name="Btn_RefMinus" id="Btn_RefMinus" value="-" onclick="FNCrefSub()" />

<input type="button" name="Btn_RefPlus" id="Btn_RefPlus" value="+" onclick="FNCrefPlus()"/>
<p>Fortitude: 
<label for="txtREF"></label>
<input name="txtFOR" type="text" id="txtREF" readonly="readonly" />
<label for="txtFORMod"></label>
<input name="txtFORMod" type="text" id="txtFORMod" readonly="readonly" />
<input type="button" name="Btn_ForMinus" id="Btn_ForMinus" value="-" onclick="FNCforSub()" />
<input type="button" name="Btn_ForPlus" id="Btn_ForPlus" value="+" onclick="FNCforPlus()"/>
</p>

<p>Intellect: 
<label for="txtINT"></label>
<input name="txtINT" type="text" id="txtINT" readonly="readonly" />
<label for="txtINTMod"></label>
<input name="txtINTMod" type="text" id="txtINTMod" readonly="readonly" />
<input type="submit" name="Btn_IntMinus" id="Btn_IntMinus" value="-" onclick="FNCintSub()"/>
<input type="submit" name="Btn_IntPlus" id="Btn_IntPlus" value="+"onclick="FNCintPlus()" />