Struppi: getElementById() Fehlermeldung: ist Null oder kein Objekt

Beitrag lesen

Hallo!

Mit getElementById("1").value möchte ich den Wert eines input Feldes befüllen.

Warum?
du kannst doch direkt auf ein  Formular zugreifen.

Es funktionieren einige JavaScript Funktionen (hab alerts eingehängt um zu testen, ob überhaupt was in Richtung JavaScript geht), nur die getElementById("1").value gibt mir die Fehlermeldung "getElementById("..") ist Null oder kein Objekt".

D.h. das Script kann nicht auf das Objekt zugreifen.

Ist die Seite schon fertig geladen, d.h. ist das Formular überhaupt da?

<html>

<head>
 <script src=".." />
</head>

<body>

<script language="JavaScript">

Es muss heißen:
<script type="text/JavaScript">

»

<html>
<head>
<title>...</title>

und das hast du auch entfernt?
Das ist innerhalb vom body ziemlicher Müll.

<script language="javascript" scr="..."></script>
</head>
<body>

und noch ein Body?

Du kriegst hier natürlich schwierigkeiten mit deiner Funktion document.get... auf was bezieht dsich das document?

<form ...>
...

<!-- auf dieses Element möchte ich zugreifen -->
<input type="text" name="JAHR" id="1" size="4" maxlength="4">

document.forms[0].elements['JAHR'].value = ......

Dachte eventuell, daß zwei geschachtelte HTML Seiten das Problem sind und hab das ohne das Portal Geraffel in einem einfachen Beispiel getestet - und es tat.

Es gibt keine geschachtelten HTML Seiten, insofern ist es völlig unvorhersehbar, was der Browser daraus macht.

function fillJahr()
{
alert("fillJahr");
  var Datum = new Date();
  var aktuellesJahr = Datum.getFullYear();
alert("aktuelles Jahr: " + aktuellesJahr);
  document.getElementsByName('JAHR')[0].value = aktuellesJahr;
}

Das kann natürlich erst nachdem das Formular da ist funktioneren.

Also in etwa so:

<html>
<head>
.....
</head>

<body>

<form ....>

<input type="text" name="JAHR">

</form>

<script type="text/javascript">
var aktuellesJahr = (new Date()).getFullYear();
document.forms[0].elements['JAHR'].value = aktuellesJahr;
</script>

</body>
</html>