调用getElementById()
以检索表单上的“隐藏”字段返回null
。无法从getElementById获得输入类型=“隐藏”
我已经研究过其他SO问题,许多人在调用getElementById()
时使用隐藏字段的'名称'而不是'id',或者在实际的html之前在脚本顶部执行getElementById()
,隐藏字段已被浏览器处理。这两个错误都可以解释为什么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();
}
我不理解为什么我得到getElementById()
的null
回报。我的印象是 getElementById()
适用于type="hidden"
字段的FINE。
此外,我用于我的隐藏字段的ID - theHiddenField
- 在我的文件中是100%唯一的。
当我试图通过getElementById()
获得隐藏字段时,为什么我会收到null
?
疑问,这是原因,但你的''标签不被关闭。开头的'
修复你的HTML,这应该正常工作。 – 2012-03-04 22:03:55
并确保您的ID是唯一的 – mplungjan 2012-03-04 22:10:09