Beim Klonen wird der Value übernommen
Marc_CH
- javascript
0 Struppi
0 Marc_CH
0 Thorsten F.
Hallo
Ich hab folgendes Problem: Ich will meinen Benutzern ein Upload-Formular zur Verfügung stellen indem Sie Dateien uploaden können. Es soll die Möglichkeit bestehen mehrere Dateien gleichzeitig zu uploaden. Zu diesem Zweck werden die Eingabe- bzw. Uploadfelder mit Javascript geklont. Es funktioniert alles Bestens, ausser dass die Eingaben des Benutzers mitgeklont werden. Ich möchte jedoch bei jedem Klon wieder leere Eingabefelder haben. Hier meine Funktion:
function addDocumentField() {
var f = document.getElementsByTagName("form");
var u = f[0].firstChild;
var d = u.firstChild.cloneNode(true);
var s = d.getElementsByTagName("select");
s[1].selectedIndex = 0;
var i = d.getElementsByTagName("input");
i[0].setAttribute("value", "");
i[1].setAttribute("value", "");
u.appendChild(d);
}
So funktioniert es im IE, jedoch nicht im FF. Wie kann ich den Wert auch im FF wieder auf "null" setzen?
Warum ich den Inhalt klonen und keine neuen Elemente erzeuge will: Die Elemente werdem per PHP geladen (z.B. Auswahllisten) und darum können sie verschieden sein.
Gruss Marc
Ich hab folgendes Problem: Ich will meinen Benutzern ein Upload-Formular zur Verfügung stellen indem Sie Dateien uploaden können. Es soll die Möglichkeit bestehen mehrere Dateien gleichzeitig zu uploaden. Zu diesem Zweck werden die Eingabe- bzw. Uploadfelder mit Javascript geklont. Es funktioniert alles Bestens, ausser dass die Eingaben des Benutzers mitgeklont werden. Ich möchte jedoch bei jedem Klon wieder leere Eingabefelder haben. Hier meine Funktion:
wieso erzeugst du nicht einfach ein neues Element?
Das halte ich für den sinnvolleren Weg, als eine vohandenes Element zu klonen um dann danach die vorhanden Attribute zu verwerfen.
var i = d.getElementsByTagName("input");
i[0].setAttribute("value", "");
i[1].setAttribute("value", "");
setAttribute ist problemmatisch.
du Kannst hier ohne Probleme dierekt darauf zugreifen.
i[0].value = "";
Warum ich den Inhalt klonen und keine neuen Elemente erzeuge will: Die Elemente werdem per PHP geladen (z.B. Auswahllisten) und darum können sie verschieden sein.
Naja, du kannst auch Problemlos ermitteln was für ein Element du hast, in dem Fall über die Eigenschaft .tagName
Struppi.
@Struppi
i[0].value = ""; <---
danke für den tipp :). daran lags. jetzt gehts :D!
Hi,
ich meine mal gehört zu haben, dass der IE und der Firefox unterschiedlich mit dem String "firstChild" umgehen.
D.h. der IE intepretiert das für ihn richtig, jedoch der FF nicht, da er das glaube ich, gar nicht kennt. Da musste dann, soweit ich weiß, mit einem anderen String arbeiten.
Wie gesagt, ICH gaube, dass das daran liegt, kann mich aber auch gerade total irren.
Grüße,
Thorsten F.