Autor | Zpráva | ||
---|---|---|---|
BunnyBugs Profil * |
#1 · Zasláno: 22. 3. 2014, 03:56:41
Ahoj, mám prosbičku.
Mám funkci na počet znaků v řetězci, ale při prvotním načtení stránky se mi nezobrazí nic, až když začnu psát. Jak udělám to, aby se číslo zobrazilo ihned po načtení, třeba nula, když není nic předvyplněno, nebo počet znaků předvyplněného textu a pak to normálně dál počítalo? Funkce vypadá takto: function pocet_znaku(){ document.getElementById("zobraz_pocet").innerHTML = pocitani.value.length; } A ve formuláři: <input type="text" ... id="pocitani" onKeyUp="pocet_znaku()" maxlength="50" ... <p>Už jsi napsal <span id="zobraz_pocet"></span> znaků! ... Už tady po diskuzi lítám skoro dva dny a vůbec se mi nedaří, tak děkuji za každou radu :) |
||
Tori Profil |
#2 · Zasláno: 22. 3. 2014, 08:27:47
Můžete dopsat výchozí hodnotu přímo do HTML. Anebo někde za formulářem zavolat tu funkci.
|
||
BunnyBugs Profil * |
#3 · Zasláno: 22. 3. 2014, 12:56:10
No ale jak?, to je to, co nevím.
A jde o to, že to počáteční číslo je proměnlivé, protože se jedná o editaci záznamů databáze (MySQL), kde řetězec už může mít nějaké znaky. |
||
Chro Profil |
#4 · Zasláno: 22. 3. 2014, 13:17:16
Třeba zavolat funkci po načtení stránky.
<body onload="pocet_znaku()"> |
||
BunnyBugs Profil * |
#5 · Zasláno: 22. 3. 2014, 14:06:47
Jo, to je ono, moc totiž javaskriptu nerozumím.
Tohle funguje, díky moc :) |
||
BunnyBugs Profil * |
#6 · Zasláno: 22. 3. 2014, 17:55:32
A mám další problém :(
Pokud chci tuto funkci použít vícekrát v jednom formuláři, tak to nefunguje :( Jak to udělat, abych na každé pole nemusel nemusel psát stejnou funkci s jiným id několikrát? Děkuji |
||
juriad Profil |
#7 · Zasláno: 22. 3. 2014, 18:14:32
Nějak takto:
http://kod.djpw.cz/emcb Jednotlivé inputy mají id začínající na "pocitani". Spany mají stejné id, jen je zakončená na "-pocet". |
||
BunnyBugs Profil * |
#8 · Zasláno: 22. 3. 2014, 19:07:30
To je ono, super, díky moc :)
|
||
CZghost Profil |
BunnyBugs:
„Jak to udělat, abych na každé pole nemusel nemusel psát stejnou funkci s jiným id několikrát?“ To nepůjde, javascript je stavěný na objektech buď s name nebo id, případně proprietárních objektech dokumentu (například this nebo document samotný). Nijak jinak ti to nebude fungovat. EDIT: Tak to vypadá, že jsem přišel s křížkem po funuse :D |
||
BunnyBugs Profil * |
#10 · Zasláno: 22. 3. 2014, 20:33:50
CZghost:
Jojo, nápověda od juriad fakt funguje :) Jen se mi tedy u pole textarea nezobazuje počáteční počet znaků, dokud nestisknu klávesu. Kde je zakopaný pes? Trik z příspěvku [#4] Chro nefunguje :P |
||
Tori Profil |
#11 · Zasláno: 22. 3. 2014, 20:37:50
No a proč to prostě nenapíšete přímo do toho prvku?
Už jsi napsal <span id="zobraz_pocet">0</span> znaků!
|
||
BunnyBugs Profil * |
#12 · Zasláno: 22. 3. 2014, 21:33:49 · Upravil/a: BunnyBugs
Tori:
Ta 0 by tam šla, ale jen v případě, že by při každém načtení ta nula vždy byla. Vzhledem k tomu, že se načítají informace z databáze pro editaci, tak ten textový řetězec je proměnlivý a v málokterém případě je prázdný. Ale díky za tu nulu, protože mě to nakoplo a stačí místo nuly dosadit strlen() Tak děkuji za všechny rady. |
||
Tori Profil |
#13 · Zasláno: 22. 3. 2014, 21:52:18
Mně ten juriadův ale kód funguje správně, nula se zobrazí hned při načtení stránky. [#4] není potřeba. Nevím, co vám na tom zlobilo.
Pro textarea stačí jednoduchá úprava (mohla by tam být ještě podmínka, že prvek formuláře je textové pole, ale když nebudete dávat stejná ID i něčemu jinému, tak to nevadí): http://kod.djpw.cz/hmcb Místo strlen bude lepší mb_strlen (pokud používáte kódování UTF-8, tak by vám strlen vracelo jiný výsledek než počítání znaků v JS). |
||
BunnyBugs Profil * |
#14 · Zasláno: 23. 3. 2014, 00:03:18
Tori:
Stejná ID určitě nedávám, jen nevím proč, ale v poli textarea mi to nefungovalo, v ostatních ano. Nicméně jsem doplnil dle rady plus tu funkci strlen() a šlape to, jak má.
Jinak díky za připomenutí mb_strlen() , už jsem ten problém někde četl a zapomněl na to, takže to ještě změním.
Díky. |
||
Časová prodleva: 11 let
|
0