Вызов 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()
?