2012-03-04 31 views
1

調用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

+4

疑問,這是原因,但你的''標籤不被關閉。開頭的'

'標籤也缺少'>'。 – 2012-03-04 22:01:14

+1

修復你的HTML,這應該正常工作。 – 2012-03-04 22:03:55

+1

並確保您的ID是唯一的 – mplungjan 2012-03-04 22:10:09

回答

7

可能是因爲您的<form>元素形成不正確(如引用的示例 - >在開始標記中缺失)?

-1

使用的document.getElementById( 'theHiddenField')。值

+0

這是必要的,但其他事情正在發生。這不會阻止getElementById部分返回null。如果它沒有.value時爲null,則它將與.value一起未定義。 – jmort253 2012-03-04 22:09:48

相關問題