Upload-Input mit Javascript erstellen/einsetzen

luke_the_duke

Erfahrenes Mitglied
Hallo,

ich möchte mit Javascript ein Upload-Input einsetzen. Das funktioniert im Firefox auch einwandfrei. Der IE jedoch gibt mir bei Aufruf des Scripts aus, das Objekt "input" verfüge über kein Attribut "type", welches ich natürlich zu modifizieren versuche. Auf selfhtml wird "type" in der Referenz auch als readonly beschrieben. Ich habe obige Methode(Layer durch Input ersetzen/Input einsetzen usw.) jedoch mit Text-Inputs schon oft verwendet und das hat immer in allen Browsern funktioniert. Hab ich was übersehen/vergessen?

Die Funktion "$" steht als Abkürzung für getElementById.

Mein Code:
Code:
var picture = $("image_"+id);
var repl = $("picture_ct_"+id);
	
var div = document.createElement("div");
var f = document.createElement("form");
	
div.appendChild (f);
div.style.marginLeft = "85px";
f.enctype = "multipart/form-data";
f.action  ="upload.picture.php?table=gallery&id="+id;
f.method ="post";

var upload = f.appendChild(document.createElement("input"));
upload.type = "file";
upload.name = "file";
upload.accept = "image/*";
	
var subm = f.appendChild(document.createElement("input"));
subm.type = "submit";
subm.value ="Upload";
	
picture.insertBefore (div, repl);

Wäre toll, wenn sich das jemand kurz anschauen könnte.

gruss
 
Hi,

erstelle zunächst das neue Element und weise ihm die gewünschten Eigenschaften zu. Dann wird es in die Dokumentstruktur
eingehängt.
Code:
  // Element erstellen und auszeichnen
  var objNew = document.createElement("input");
  objNew.type = "file";
  objNew.accept = "image/*";
  // Element einhängen
  var upload = f.appendChild(objNew);

  // Element erstellen und auszeichnen
  objNew = document.createElement("input");
  objNew.type = "submit";
  objNew.value = "Upload";
  // Element einhängen
  var subm = f.appendChild(objNew);
Ciao
Quaese
 
Auch das nachträgliche Ändern der Eigenschaften sollte funktionieren. Allerdings muss dazu schon das richtige Element ausgewählt sein:
Code:
var upload = f.appendChild(document.createElement("input"));
upload.lastChild.type = "file";
upload.lastChild.name = "file";
upload.lastChild.accept = "image/*";
	
var subm = f.appendChild(document.createElement("input"));
subm.lastChild.type = "submit";
subm.lastChild.value ="Upload";
 

Neue Beiträge

Zurück