致电getElementById()
以检索表单上的“隐藏”字段正在返回null
。
我研究了其他SO问题,许多人在调用getElementById()
时使用隐藏字段的'name'而不是'id',或者在顶部的脚本中执行getElementById()
包含隐藏字段的实际html之前的文件已由浏览器处理。这两个错误都可以解释为什么getElementById()
为他们返回null
。
我可能错了,但我认为这不是我的理由。
这是我的表格:
<form name="theDeleteItemForm" id="deleteItemForm" action="deleteTheSelectedItem"
method="post"
<input type="hidden" id="theHiddenField" name="deleteThisSelectedItem" value="">
</form>
这是一个Javscript处理程序,当点击页面上的“删除”按钮时成功执行(我可以告诉,因为下面的处理函数中的alert()
框正在弹出上升):
function deleteItem()
{
alert("Just entered deleteItem()");
var theFieldToDelete = document.getElementById('theHiddenField');
// THIS IS THE PLACE WHERE I FOUND THAT 'theFieldToDelete' WAS 'null'
alert("Just got the hidden field element, which is: " + theFieldToDelete );
// THIS DOES NOTHING MORE THAN TO PREVENT THE 'alert' THAT FOLLOWS FROM APPEARING
theFieldToDelete.value = "upForDeletion";
alert("deleteItem() was called, about to submit the form");
document.theDeleteItemForm.submit();
}
我不明白为什么我从null
获得getElementById()
回复。我的印象是
getElementById()
对type="hidden"
字段起作用。
此外,我用于隐藏字段的ID - theHiddenField
- 在我的文件中是100%唯一的。
当我尝试通过null
获取隐藏字段时,为什么会收到getElementById()
?
答案 0 :(得分:7)
可能是因为您的<form>
元素形式不正确(如引用示例中所示 - 开始标记中缺少>
)?
答案 1 :(得分:-1)
使用document.getElementById('theHiddenField')。value