Autor | Zpráva | ||
---|---|---|---|
Magnus123 Profil |
#1 · Zasláno: 25. 12. 2011, 09:01:45
Ahoj.
Zkusil jsem si v rychlosti vytvořit takové jednoduché počítadlo znaků v jQurey. <script type="text/javascript"> function pocitadloZnaku(selektor_id,vysledek_id,min_znaku,max_znaku) { this.selektor = $("#" + selektor_id); this.vysledek = $("#" + vysledek_id); this.vysledek_barva = $("#" + vysledek_id + "_barva"); this.min_znaku = min_znaku; this.max_znaku = max_znaku; this.selektor.keyup(function() { if (this.selektor.val().length < this.min_znaku || this.selektor.val().length > this.max_znaku) this.vysledek_barva.css('color','#ff0000'); else this.vysledek_barva.css('color','#33ff00'); this.vysledek.text(this.selektor.val().length); }); } var jmeno = new pocitadloZnaku("jmeno","jmeno_pocet",3,18); </script> <input type="text" id="jmeno" /> <span id="jmeno_pocet_barva"><span id="jmeno_pocet">0</span> / 18</span> Úkol tohoto scriptu by měl být ten, že když se stiskne klávesa (keyup) na inputu s ID "jmeno", zkontroluje se, zda obsahuje správný počet znaků (víc jak 2 a méně jak 19). Pokud ano, obarví se "0 / 18" na zelenou barvu. Jinak bude červený. Poslední řádek zapíše do spanu s ID "jmeno_pocet" počet znaků v inputu. Mohl by mi někdo, prosím, říct, co je v tom tak špatně, abych se příště vyvaroval takových chyb? |
||
Camo Profil |
#2 · Zasláno: 26. 12. 2011, 16:18:22
A čo použiť id_inputu.value.length?
|
||
peta Profil |
#3 · Zasláno: 28. 12. 2011, 10:15:37 · Upravil/a: peta
Zkus pouzit alerty, co vypisi.
this.selektor.keyup(function() { alert(this.selektor); // tady by to mohlo napsat error, protoze this se vztahuje k new function na radku "this.selektor.keyup(function()" a ne k "function pocitadloZnaku" if (this.selektor... Camo this.selektor.val().length, to tam preci pouzil, ne? |
||
mag123 Profil * |
#4 · Zasláno: 29. 12. 2011, 11:30:28
Děkuji za odpověď, peta, máte pravdu.
Teď tedy nevím, jak to mám vyřešit. Měl by někdo nějakou radu? |
||
peta Profil |
#5 · Zasláno: 29. 12. 2011, 16:33:41
Pojmenovat tu promennou jinak? Pockej tu legraci, az neco podobne budes delat s casovaci setTimeout a setInterval :)
var aaa = this.selektor; this.selektor.keyup(function() { alert(aaa) |
||
Chamurappi Profil |
#6 · Zasláno: 29. 12. 2011, 16:44:15
Reaguji na maga123:
Ulož si this do jiné proměnné (třeba that :-)) a v keyup pracuj s ní místo s this .
Měl bys chytat i onchange , protože klávesnice není jediným prostředkem ke změně textu.
|
||
Magnus123 Profil |
#7 · Zasláno: 29. 12. 2011, 17:12:22
Vyzkouším to. Děkuji vám za pomoc. :)
|
||
Časová prodleva: 12 let
|
0