Autor | Zpráva | ||
---|---|---|---|
Chodec Profil |
#1 · Zasláno: 22. 11. 2008, 13:42:42
Ahoj.
Snažím se vytvořit formulář na upload, kde se můžou pomocí JS přidávat další <input type="file">. Kolik uživatel bude chtít uploadovat souborů, tolik si těch ITNPUTů nakliká. Stejné jako Seznam - Email s přílohami. Script jsem vytvořil, ale problém je, že když uživatel vytvoří další IPNUT, tak se všechny předchozí INPUTY resetují i pokud byly už nějaké soubory vybrané. Použij jsem tento příkaz: document.getElementById ("UploadFileForm").innerHTML += "<span id=\"UploadFileDiv["+objekt+"]\"><input type=\"file\" class=\"file\" name=\"UploadFile["+objekt+"]\" id=\"UploadFile["+objekt+"]\" size=\""+sirka+"\"></span>"; Vím, že to dělá to, že nezachovávám hodnoty VALUE. Ale i když jsem se je snažil vrátil z pomocného předem uloženého pole, kam jsem je schoval, tak to nefunguje. Nemáte někdo nějaké řešení. Díky. |
||
Měsíček Profil |
#2 · Zasláno: 22. 11. 2008, 13:44:33
Nedělej to pomocí innerHTML, ale vytvářej další <input> pomocí document.createElement(); .. už jsem tento skript na této diskusi psal několikrát hledej.
|
||
Chodec Profil |
#3 · Zasláno: 22. 11. 2008, 13:47:53
Mockrát díky. createElement() jsme ještě nikdy nepoužil, tak se aspoň zase něco přiučím.
|
||
Měsíček Profil |
#4 · Zasláno: 22. 11. 2008, 14:09:37
Na prasácké řešení jsem expert :) takže kdyžtak si to uprav, ale fungovat by to mělo.
<script type="text/javascript"> function add_input (name) { with (input = document.createElement("input")) { setAttribute("type","file"); setAttribute("name",name); } document.form.appendChild(input); } name = 1; </script> <form name="form" action="#"> <button onClick="add_input('i'+name); name++;"> Klikni</button> <input type="submit"> </form> |
||
Chodec Profil |
#5 · Zasláno: 22. 11. 2008, 15:04:36
Díky. Už jsem to sesmolil sám. Akorát mě nefunguje přiřazení stylu k elementu:
element.addClassName ("styl") |
||
Měsíček Profil |
#6 · Zasláno: 22. 11. 2008, 15:06:12
Není náhodou addClassName() součástí nějákého Frameworku? .. Zkus vyzkoušet ten element.setAttribute()
|
||
Chodec Profil |
#7 · Zasláno: 22. 11. 2008, 15:07:21
Pře element.setAttribute() to nejde.
|
||
Měsíček Profil |
#8 · Zasláno: 22. 11. 2008, 15:09:36
Reaguji na Chodce:
Zmínku o addClassName(); jsem našel jen tady. Pokud přidáváš jakýkoliv atribut IMHO setAttribute() by měl fungovat vždy, jinak v nejhorším případě můžeš vyzkoušet řešení nahoře (to řeší i názvy inputů - to bude zase problém jak s nimi pracovat v PHP). |
||
Chodec Profil |
#9 · Zasláno: 22. 11. 2008, 15:12:12
Málem jsem na to zapomněl. Takhle už to jde:
element.className = "styl" |
||
Časová prodleva: 15 let
|
0