2 Javascipt Anfaengerfragen
Philipp
- javascript
Hallo
Habe 2 Fragen:
Erste Frage: Ich habe 2 Radiobuttons, einmal ist id="aes" und einmal id="des". In einem XML Document steht welcher Algorithmus verwendet wird und das lese ich wiefolgt aus:
algorithm = response.getElementsByTagName('country_code')[0].firstChild.data;
Nun moechte ich in abhaengigkeit von algorithm den entsprechenden Radiobutton setzten. Wenn ich es so wie unten mache bekomme ich die Fehlermeldung dass das Objekt null ist obwohl algorithm=aes.
document.getElementById(algorithm).checked = true;
Wenn ich es hardcodiera bekomme ich das gewuenschte Resultat:
document.getElementById('aes').checked = true;
Wie mache ich denn das korrekt?
Zweite Frage: Oft sieht man Auswahllisten, die es erlauben ein Land auszuwaehlen. Gibt es hierzu ein fixfertiges Listenelement? Oder muss ich von Hand all diese Laender in ein Listenelement eintragen?
Danke fuer Eure Hilfe
Gruss
Philipp
Hi,
Wenn ich es so wie unten mache bekomme ich die Fehlermeldung dass das Objekt null ist obwohl algorithm=aes.
nein, offenbar nicht. Überprüfe dies _genau_.
Zweite Frage: Oft sieht man Auswahllisten, die es erlauben ein Land auszuwaehlen. Gibt es hierzu ein fixfertiges Listenelement?
Nein.
Oder muss ich von Hand all diese Laender in ein Listenelement eintragen?
Ob das per Hand passieren muss, ist noch mal ein anderes Problem.
Cheatah
Hi
nein, offenbar nicht. Überprüfe dies _genau_.
Sorry, du hast recht. Es funktioniert genau so!
Koennte jedoch hierzu noch einen kleinen Tip brauchen. Wie gesagt ich lese mir die Daten aus dem XML Document. Nun kann jedoch folgender Fall auftreten:
<admin_email></admin_email>
D.h. probier ich nun folgendes:
admin_email = response.getElementsByTagName('admin_email')[0].firstChild.data;
Bekomme ich die Fehlermeldung Object required. Muss ich nun hier extra eine Hilfsfunktion schreiben welche mir diesen Fall abfaengt?
In dieser Funktion frag ich dann ab ob:
response.getElementsByTagName('admin_email')[0].firstChild == false
ist das der Fall geb ich "" zurueck bzw. existieren Daten so schreib gib mir die Daten aus.
Geht das ganze vielleicht auch ein bisschen einfacher und saubrer?
Tag Philipp.
Koennte jedoch hierzu noch einen kleinen Tip brauchen. Wie gesagt ich lese mir die Daten aus dem XML Document. Nun kann jedoch folgender Fall auftreten:
<admin_email></admin_email>
D.h. probier ich nun folgendes:
admin_email = response.getElementsByTagName('admin_email')[0].firstChild.data;
Bekomme ich die Fehlermeldung Object required. Muss ich nun hier extra eine Hilfsfunktion schreiben welche mir diesen Fall abfaengt?
Die Abfrage nach Elementen mit dem Tagnamen 'admin_email' liefert dir eine Kollektion aller entsprechenden Elemente. Ist die Eigenschaft length dieser Kollektion größer 0, dann kommt das Element mindestens einmal vor, anderenfalls nicht.
Ein anderer Ansatz wäre, direkt auf ein Element der Kollektion zuzugreifen und dessen Typ zu prüfen. Ist dieser 'undefined', gibt es dieses Element ebenfalls nicht.
Siechfred
Die Abfrage nach Elementen mit dem Tagnamen 'admin_email' liefert dir eine Kollektion aller entsprechenden Elemente. Ist die Eigenschaft length dieser Kollektion größer 0, dann kommt das Element mindestens einmal vor, anderenfalls nicht.
Ein anderer Ansatz wäre, direkt auf ein Element der Kollektion zuzugreifen und dessen Typ zu prüfen. Ist dieser 'undefined', gibt es dieses Element ebenfalls nicht.
Siechfred
Hi Siechfred
Danke fuer Deine Antwort, aber es geht mir nicht darum ob der Tagname existiert. Das Problem ist dass das Tag keine Daten, also in unserem Fall keine Emailadresse enthaelt:
<admin_email></admin_email>
Versuch ich nun mit firstChild.date auf den Datenstring zuzugreifen bekomme ich eine Fehlermeldung da hier ja keine Email Adresse vorhanden ist. Genau diesen Fall moechte ich abfangen!
Gruss
Philipp
Tag Philipp.
Danke fuer Deine Antwort, aber es geht mir nicht darum ob der Tagname existiert. Das Problem ist dass das Tag keine Daten, also in unserem Fall keine Emailadresse enthaelt:
Wenn das Element existiert, aber keinerlei Inhalt hat, dann hat es auch keine Kindknoten.
Siechfred
Hi,
<admin_email></admin_email>
admin_email = response.getElementsByTagName('admin_email')[0].firstChild.data;
Bekomme ich die Fehlermeldung Object required. Muss ich nun hier extra eine Hilfsfunktion schreiben welche mir diesen Fall abfaengt?
nein, einfach nur prüfen, ob das Objekt existiert. Natürlich kannst Du das in eine Hilfsfunktion auslagern, wenn Du willst; ob das sinnvoll ist, kannst nur Du entscheiden.
response.getElementsByTagName('admin_email')[0].firstChild == false
Wieso "false"?
Geht das ganze vielleicht auch ein bisschen einfacher und saubrer?
Noch sauberer als bei _jedem_ ermittelten Objekt (bzw. Methode) die Existenz abzuprüfen geht nicht, nein :-)
Cheatah
response.getElementsByTagName('admin_email')[0].firstChild == false
Wieso "false"?
Sorry frage natuerlich auf == null ab
Gruss Philipp
Hi,
Sorry frage natuerlich auf == null ab
auch das ist nicht unbedingt nötig. Prüfe, ob das Objekt Werte enthalten kann, die im Boole'schen Sinne false sind, von Dir aber beachtet werden müssen.
Cheatah
Zweite Frage: Oft sieht man Auswahllisten, die es erlauben ein Land auszuwaehlen. Gibt es hierzu ein fixfertiges Listenelement?
Nein.
Oder muss ich von Hand all diese Laender in ein Listenelement eintragen?
Ob das per Hand passieren muss, ist noch mal ein anderes Problem.
Achja, koenntest du mir hierzu vielleicht kurz verraten wie man das am geschicktesten macht?
Danke!
Hi,
Oder muss ich von Hand all diese Laender in ein Listenelement eintragen?
Ob das per Hand passieren muss, ist noch mal ein anderes Problem.
Achja, koenntest du mir hierzu vielleicht kurz verraten wie man das am geschicktesten macht?
Copy & Paste (Urheberrechte beachten), durch irgend was generieren lassen, einkaufen ...
Cheatah