molily: Erzeugerfenster erreichen

Beitrag lesen

Hallo,

Meien Idee. Ich habe in einem Fenster ein <input type="text">
Dort soll sowohl frei eingegeben werden können, als auch Inhalt aus einer vordefinierten Liste zugewiesen werden.
Also gibt es einen Button der ein Pop-Up öffnet

Wieso muss man dazu ein neues Fenster öffnen?

indem eine <select> Liste ist, unn einen Button der folgende function ausführt :

function setSchema() {
  var schema = window.document.forms[0].elements[0].value;
  if(schema!=null) {

Wieso gerade »null«? Eher != "".

window.opener.window.document.forms[0].elements[0].value = "schema";

opener ist bereits das window-Objekt des opener-Fensters. opener.document reicht also, um dessen document-Element anzusprechen.

Außerdem meinst du wohl ».value = schema;«

window.close();
  }
}

Die Funktion liest den Wert angewählten Wert aus der select-Liste aus (geht das überhaupt mir value ?)

Jein. Ältere Browser können es möglicherweise nicht. Da ist z.B. select_element.options[select_element.options.selectedIndex].value nötig.

(Ja die Adressierung über forms[0].elements[0] ist in beiden Fällen korrekt, es ist imemr das erste Formular udn das erste Element)

Trotzdem unklug, weil es schlecht ausbaubaren und nicht robusten Code erzeugt. Das ist immer defizitärer Programmierstil. Bei solchen Kleinigkeiten fangen Einfachheit, Eindeutigkeit, Kompatibilität und Erweiterbarkeit an.

Warum funktioniert das nicht ?

Was für eine Fehlermeldung kommt? (http://glasgoogle.de/)

Und/Oder kann ich das geschickter lösen ?

Zum Beispiel dein Formular einfacher strukturieren, um Popups zu vermeiden und mit JavaScript höchstens das Formular in einem Fenster dynamisch umstrukturieren.

Mathias