Der Martin: Prüfen, ob Objekt vorhanden

Beitrag lesen

Hi,

angezeigte Fehlermeldung:
<p id="fehlertext" class="fehler" style="display:block">Fout: &nbsp; Login is mislukt &nbsp; </p>

ah, jullie praat Nederlands? :-)

bei Klick auf submit:

if ( typeof document.getElementById('fehlertext') != "undefined" )

{
    document.getElementById('fehlertext').style.display = 'none';
  }

  
Das wird so nichts. Eigentlich genügt als Abfrage ein  
  
  if (document.getElementById('fehlertext'))  
  
denn getElementById() liefert null, wenn kein entsprechendes Element im DOM gefunden wird, und null evaluiert im booleschen Kontext zu false. Und typeof(null) ist nicht "undefined", sondern "object", sagt Opera (hm, seltsam eigentlich, null ist ein Objekt?).  
Außerdem wäre es zur Optimierung sinnvoll, das Ergebnis dieser ersten Abfrage gleich zu speichern, so dass man im Rumpf der if-Abfrage nicht dieselbe DOM-Suche erneut durchführen muss. Also so:  
  
~~~javascript
  if (var e=document.getElementById('fehlertext'))  
 {  
   e.style.display = 'none';  
 }

Fehlermeldung der Opera:
Uncaught exception: TypeError: Cannot convert 'document.getElementById('fehlertext')' to object

Das deutet darauf hin, dass als Ergebnis von getElementById() eben doch null geliefert wird. Wann genau wird denn das entsprechende Script aufgerufen? Existiert das komplette Dokument da noch, oder wurde der Submit-Vorgang bereits angestoßen?

[...] muss das Problem woanders liegen. Nur wo?

Vermutlich im Vorhandensein bzw. Nichtvorhandensein eines Elements mit der ID "fehlertext" zum Zeitpunkt der Abfrage. Mehr kann ich aus dem bisher beschriebenen Szenario nicht ableiten.

Ciao,
 Martin

--
Husten kann böse Folgen haben.
Besonders im Kleiderschrank.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(