input type = "hidden" не может быть получен из getElementById - PullRequest
2 голосов
/ 05 марта 2012

Вызов getElementById() для получения «скрытого» поля в форме возвращает null.

Я изучил другие вопросы SO, и многие использовали имя скрытого поля вместо имени'id' в вызове getElementById() или выполняли 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() работает FINE для type="hidden" полей.

Кроме того, идентификатор, который я использовал для своего скрытого поля - theHiddenField - на 100% уникален в моем файле.

Почему я получаю null, когда пытаюсь получить скрытое поле через getElementById()?

Ответы [ 2 ]

7 голосов
/ 05 марта 2012

Возможно, это потому, что ваш элемент <form> сформирован неправильно (как в приведенном примере - в открывающем теге отсутствует >)?

0 голосов
/ 05 марта 2012

использовать document.getElementById ('theHiddenField'). Значение

...