Autor | Zpráva | ||
---|---|---|---|
gogo.x Profil * |
#1 · Zasláno: 30. 12. 2009, 15:29:52
nevěděl by někdo prosím jak udělat dynamicky generovaný input jako je např. u emailu na seznam.cz
jde o to, že potřebuju, když se klikne přidat další input, tak aby se na stránce udělal input, ale aby měl jiné id, než ten předchozí po prvním kliknutí se tam přidá např. <input type="text" id="1"> při druhém kliknutí <input type="text" id="2"> při třetím <input type="text" id="3"> atd. ať hledám jak hledám, nemůžu nic takového najít. děkuji všem za pomoc |
||
habendorf Profil |
#2 · Zasláno: 30. 12. 2009, 16:16:21
KW: createElement, appendChild
|
||
gogo.x Profil * |
#3 · Zasláno: 30. 12. 2009, 16:19:47
habendorf:
diky moc za odpověď ale to nevím co s tím |
||
habendorf Profil |
#4 · Zasláno: 30. 12. 2009, 16:22:24
KW je zkratka pro keywords, tedy klíčová slova. Napsal jsem ti je tam, abys věděl, co máš hledat. Pak už je to na tobě :o)
|
||
gogo.x Profil * |
#5 · Zasláno: 30. 12. 2009, 17:27:08
aha, díky moc, už jsem něco našel a upravil to, ale mám dva problémy
1) potřeboval bych vědět jaká je hodnota name 2) nevím proč se mi ty inputy přidávají až po tlačítko tady je kód: <script type="text/javascript"> var num_of_lines = 0; function plus(element){ num_of_lines ++; var x = document.getElementById( element ); var input = document.createElement('input'); input.setAttribute('name', 'input[]' ); var p = document.createElement('span'); p.setAttribute('id', 'span_' + num_of_lines ); var br = document.createElement('br'); p.appendChild(input); p.appendChild(br); x.appendChild(p); } function minus(element){ if( num_of_lines < 1 ) return; var d = document.getElementById( element ); var olddiv = document.getElementById( 'span_' + num_of_lines ); num_of_lines--; d.removeChild(olddiv); } </script> <a href="#" onclick="plus('new_sab'); return false;" >pridat</a> <br> <a href="#" onclick="minus('new_sab'); return false;" >odebrat</a><br /> <form method="post" action="vysledek.php" id="new_sab"> <div> </div> <input type="submit"> <br /> </form> |
||
gogo.x Profil * |
#6 · Zasláno: 30. 12. 2009, 17:51:21
tak už jsem vyřešil jeden problém, sice asi ne moc elegantně, ale aspoň že to funguje
kdyby někdo tápal stejně jako já, tak hodnotu name jsem vyřešil takhle: input.setAttribute('name', 'i' + num_of_lines ); namísto input.setAttribute('name', 'input[]' ); a výsledkem jsou formuláře, kde name je: i1, i2, i3 .... ale s tím nastává i nový problém nevíte někdo jak udělat skryté pole, kde by byla hodnota kam až to jde? když budou 3 inputy tak aby v něm byla 3 ??? |
||
_es Profil |
#7 · Zasláno: 30. 12. 2009, 18:07:44
gogo.x:
„hodnotu name jsem vyřešil takhle:“ Jednoduchšie asi bude: input.name = 'i' + num_of_lines; Namiesto premennej num_of_lines by bolo asi lepšie zisťovať skutočný počet príslušných elementov. Pri nejakej chybe by sa tá premenná mohla rozísť so skutočnosťou. |
||
gogo.x Profil * |
#8 · Zasláno: 30. 12. 2009, 18:45:04
_es:
díky za radu, zkusím s tím něco vymyslet, ale to je v podstatě už jen kosmetická úprava teď mě mnohem víc trápí proč se mi to přidává až za ten submit a nevím si rady s tím inputem, kde by byla hodnota num_of_lines zatím to řeším takhle: var hid = document.createElement('input'); hid.setAttribute('name', 'hid'); hid.setAttribute('value', num_of_lines); ale to mi pokaždé přidá nový input a já bych potřeboval aby tam byl jen jeden a v tom se měnila ta hodnota |
||
habendorf Profil |
#9 · Zasláno: 30. 12. 2009, 19:13:24
gogo.x:
„ale to mi pokaždé přidá nový input a já bych potřeboval aby tam byl jen jeden a v tom se měnila ta hodnota“ Tak ho navaž až na onsubmit. Místo setAttribute bych dal hid.value=num_of_lines; |
||
_es Profil |
#10 · Zasláno: 30. 12. 2009, 19:32:22
gogo.x:
„proč se mi to přidává až za ten submit“ Ak si v tom svojom kóde klikneš ne nejaké "slovo", tak v tej dokumentácii možno prídeš na nejakú metódu, ktorá sa ti zíde, napríklad insertBefore. „ale to mi pokaždé přidá nový input a já bych potřeboval aby tam byl jen jeden a v tom se měnila ta hodnota“ Tak ak nechceš pridať nový element, tak ho nepridávaj a uprav ten existujúci metódami na to určenými. Nedá sa súčasne aj hádať čo asi chceš aj radiť. Skús si lepšie pozrieť nejaké metódy a vlastnosti v tej dokumentácii (Mozilly). |
||
gogo.x Profil * |
#11 · Zasláno: 30. 12. 2009, 20:51:39
tak
_es: > Tak ak nechceš pridať nový element, tak ho nepridávaj a uprav ten existujúci metódami na to určenými. > Nedá sa súčasne aj hádať čo asi chceš aj radiť. > Skús si lepšie pozrieť nejaké metódy a vlastnosti v tej dokumentácii (Mozilly). no to bych rád, ale když nevím co mám hledat, tak se to hledá těžko mohl bys mi teda prosím říct, jak ten element místo přídání upravit? díky |
||
_es Profil |
#12 · Zasláno: 30. 12. 2009, 21:05:41
gogo.x:
Tu máš vlastnosti a metódy toho elementu: https://developer.mozilla.org/en/DOM/Input Zrejme ťa najviac bude zaujímať vlastnosť value. |
||
Časová prodleva: 14 let
|
0