Autor | Zpráva | ||
---|---|---|---|
Sandro Profil * |
ahoj,
potreboval bych poradit. Dejme tomu, ze mam nekolik inputu ve tvaru <input type="text" name="jmeno1" value="A"> <input type="text" name="jmeno2" value="B"> <input type="text" name="jmeno3" value="C"> a potrebuju vytvorit funkci EraseInput(i) tak, aby vymazala obsah i-teho inputu napadlo me: function EraseInput(i) { document.getElementByName('jmeno'+i).value=''; } ale to bohuzel nefunguje. Nevide nekdo, co s tim? Podotykam, ze je priklad znacne zjednodusen, poli je priblizne 100, pouziti id="jmeno1" je proto trochu haluz a bylo by fajn, kdyby nebylo treba ke kazdeu poli jeste krome name davat IDcka |
||
habendorf Profil |
var inputs = document.getElementsByTagName('input'); function EraseInput(i) { inputs[i].value=''; } To je jen učebnicový příklad. Předpokládá třeba, že v dokumentu žádné jiné inputy nejsou. Ale můžeš z toho vyjít. |
||
Joker Profil |
#3 · Zasláno: 20. 11. 2009, 13:28:20
Sandro:
„poli je priblizne 100, pouziti id="jmeno1" je proto trochu haluz“ Proč? Úkol "Ke všem prvkům <input> s atributem name přidat atribut id stejné hodnoty jako má name" se s pořádným editorem dá zvládnout do půl minuty. Například v PSPadu bych to udělal tak, že bych dal nahradit pomocí regulárního výrazu: najít: <input(.*?) name="([^"]+)" nahradit: <input$1 name="$2" id="$2" Od toho ty počítače jsou, aby za nás dělaly jednoduché opakující se činnosti :-) |
||
Sandro Profil * |
#4 · Zasláno: 20. 11. 2009, 14:12:27
To je sice pravda, ale pokud by to byvalo slo i bez toho, bylo by to lepsi. Proto jsem se ptal na detElementByName. Otazka vsak zni, jak budu pristupovat k jednotlivym i-tym IDckum? getElementById('jmeno'+i) nefunguje
|
||
Sandro Profil * |
#5 · Zasláno: 20. 11. 2009, 14:16:05
odvolavam - mel jsem tam stupidni preklep - tak tedy alespon takto pres ID
THX |
||
habendorf Profil |
#6 · Zasláno: 20. 11. 2009, 14:18:38
No a není to moje krapet jednodušší?
|
||
Časová prodleva: 21 dní
|
|||
suvel Profil |
#7 · Zasláno: 11. 12. 2009, 17:19:13
Sandro:
„mel jsem tam stupidni preklep“ Napiš, prosím, jaký překlep. Čirou náhodou se už přes hodinu potýkám s podobným problémem, totiž s načtením hodnoty z <input>, kde name i id jsem udělal identické, ale proměnná je pole. Ty inputy vypadají asi takhle: <?php ... ... echo "<INPUT NAME='t[".$i."]' VALUE='".$D."' id='[".$i."]'>"; .... .... Ale ať zkouším načíst v javascriptové fci (která na jiné inputy běžně funguje) hodnotu proměnné pomocí df = document.getElementById("t[i]"); nebo df = document.getElementByName("t[i]"); nefunguje to. Ani když zkusím df = (formular.t[i].value); Třeba už jsem jenom zblblý, prosím, nakopněte mě. Dík |
||
Chamurappi Profil |
#8 · Zasláno: 11. 12. 2009, 17:23:25
Reaguji na suvla:
„Napiš, prosím, jaký překlep.“ Předpokládáš, že jsi náhodou udělal úplně stejný překlep? „df = document.getElementById("t[i]");“ Sandro zde sdělil, že getElementById('jmeno'+i) funguje. Proč se tedy pokoušíš o jiný (nefunkční) zápis? |
||
LuBoss Profil * |
#9 · Zasláno: 11. 12. 2009, 23:52:08
Davat id='[1]', id='[2]' ... alebo name='t[1]', name='t[1]', mi pride velmi divne a matuce. V tom druhom pripade, to skoro vyzera akoby si tam chcel dostat hodnotu z nejakeho pola t a nie retazec 't[1]'.
|
||
suvel Profil |
#10 · Zasláno: 12. 12. 2009, 01:19:31 · Upravil/a: suvel
Přesně tak, pracuju s polem. Jinak getElementById('t'+i).value z echo"<INPUT NAME='t[".$i."]' VALUE='".$D."' id='t".$i."'>"; skutečně funguje (jen mi to trvalo trochu déle, než jsem to vyladil, protože nejsem v javascriptu žádný expert). Počet prvků pole si do javascriptu načtu z <input type=hidden> a pak si v tom javascriptu s tím polem v pohodě můžu dělat co chci včetně návratu kurzoru do libovolného inputu pomocí document.getElementById('t'+i).focus();
Snad to někomu, kdo potřebuje pracovat v javascriptu s polem z html (php) pomůže. |
||
Časová prodleva: 16 let
|
0