无法从getElementById获取input type =“hidden”

时间:2012-03-04 21:56:55

标签: javascript html hidden getelementbyid

致电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()

2 个答案:

答案 0 :(得分:7)

可能是因为您的<form>元素形式不正确(如引用示例中所示 - 开始标记中缺少>)?

答案 1 :(得分:-1)

使用document.getElementById('theHiddenField')。value