2012-03-04 2 views
1

getElementById()を呼び出して、フォーム上の「非表示」フィールドを取得すると、nullが返されます。getElementByIdからinput type = "hidden"を取得できません

私は他の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> 

そして、ここでは(私はハンドラであるため、私のalert()ボックスを伝えることができるページ上の「削除」ボタンがクリックされたときにが正常に実行されているJavscriptハンドラです以下の機能)がポップアップされています

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

疑いそれが原因だが、あなたの '' タグが閉じられていません。 '

'タグを開いても、 '>'タグがありません。 –

+1

HTMLを修正してください。これは正しく動作するはずです。 –

+1

IDが一意であることを確認してください – mplungjan

答えて

7

<form>要素が正しく構成されていない可能性があります(引用した例のように - 開始タグに>がありません)。

-1

利用のdocument.getElementById( 'theHiddenField')。値

+0

これが必要になることは間違いありませんが、何かが続いています。これにより、getElementById部分がnullを返すのを防ぐことはできません。 .valueなしでnullの場合、.valueで定義されません。 – jmort253

関連する問題