2012-03-04 3 views
1

Вызов getElementById() для извлечения поля 'hidden' в форме возвращает null.Тип ввода = "скрытый" не может быть получен из getElementById

Я изучил другие вопросы, и многие использовали «имя» скрытого поля вместо «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()?

+4

Сомнение это причина, но ваш '' тег не закрыт. В теге открытия '

' также отсутствует его '>'. –

+1

Исправьте свой HTML, и это должно работать исправно. –

+1

И удостоверьтесь, что ваши идентификаторы уникальны. – mplungjan

ответ

7

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

-1

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

+0

Правильно, что это понадобится, но что-то еще происходит. Это не помешает части getElementById вернуть null. Если это значение равно null, оно не будет определено с помощью .value. – jmort253

Смежные вопросы