Typzuweisung für INPUT-TAG im IE
*Alex*
- javascript
Hallo Ihr Alle
Wahrscheinlich lacht Ihr wieder über meine Workarounds, weil ich nicht weiß, wie's einfacher geht...
Also:
Ich möchte mittels eines Formulars Werte von Variablen an ein PHP-Skript übergeben, mit dem Haken, dass ich die Variablennamen erst während der Eingabe erzeuge. So dass ich im $_POST array später key => values in der Form
dynamischerVariablenname1 => Inhalt1
dynamischerVariablenname2 => Inhalt2
dynamischerVariablenname3 => Inhalt3
vorliegen habe.
Meine Idee dazu war, mit Javascript neue versteckte Input-Elemente in den Elementebaum einzufügen.
Damit Ihr seht, wie ich das gemacht habe, hier ein Demonstrationsmodell:
<html><head><title>WIE bring ich das zum Funktionieren?</title>
<script type="text/javascript">
var zaehler=1;
function erzeugeEingabefeld() {
var newInput = document.createElement("input");
document.getElementById("Formular").insertBefore(newInput, document.getElementsByTagName("input")[0]);
var Name = document.createAttribute("name");
Name.nodeValue = "meinTest"+zaehler;
document.getElementsByTagName("input")[0].setAttributeNode(Name);
Inhalt = document.createAttribute("value");
Inhalt.nodeValue = "Das hier ist der Inhalt meines "+zaehler+". eingefügten Eingabefeldes";
document.getElementsByTagName("input")[0].setAttributeNode(Inhalt);
Typ = document.createAttribute("type");
Typ.nodeValue = "hidden"; //Hier soll im Endeffekt "hidden" stehen, zu Demonstrationszwecken steht hier aber "button"
document.getElementsByTagName("input")[0].setAttributeNode(Typ);
zaehler++;
}
</script>
</head>
<body>
<FORM ID="Formular" ACTION="PHP-Skript" METHOD="POST">
<INPUT TYPE="text" Id="dummy" SIZE="50" VALUE="input [0] Feld für insertBefore Befehl">
</FORM>
<a href="javascript:erzeugeEingabefeld()">Eingabefeld erzeugen</a><br>
</body></html>
Das scheint erstmal zu funktionieren (obwohl ich sicher bin, dass es auch eine viel kürzere Form geben sollte), ABER:
Der Internet Explorer beachtet meine Typzuweisung im INPUT-TAG nicht, sondern erzeugt lauter sichtbare Inputs vom Type="text".
Das soll natürlich auf keinen Fall passieren!
Was kann ich tun?
Vielen Dank schonmal fürs Angucken
*Alex*
n'abend,
Das scheint erstmal zu funktionieren (obwohl ich sicher bin, dass es auch eine viel kürzere Form geben sollte), ABER:
Der Internet Explorer beachtet meine Typzuweisung im INPUT-TAG nicht, sondern erzeugt lauter sichtbare Inputs vom Type="text".
var obj = document.createElement('input');
erzeugt eine <input> Element. Dessen Eigenschaften (Attribute) kannst du ganz einfach ansprechen:
obj.name = "Müller Meier von der Abendpost";
obj.type = "hidden";
obj.value = "bla bla blubb";
Das ist eine der - wie du schon vermutet hast - kürzeren Versionen und zudem eine, die Browserübergreifend funktionieren sollte.
weiterhin schönen abend...
Hi globe
Ja, Objekte und Eigenschaften... Das sollte ich eigentlich können.
Oft macht man sich ja das Leben kompliziert, weil man versucht aus abgekupfertem Code seine eigene Lösung zu stricken, statt sich das Selber-Denken-Können zuzutrauen...
Die Lösung war so einfach - Danke für Lesen, Vorschlag und Verhelfen zu Arbeits-Erkenntnis.
*Alex*