Autor | Zpráva | ||
---|---|---|---|
maycza Profil |
#1 · Zasláno: 15. 4. 2013, 12:20:20
Zdravím,
mám vytvořený kód, který počítá znaky v <textarea> a vypisuje jejich počet do <div> u. Počet znaků je omezený a po překročení povolené délky řetězce se má zobrazit alert. To mi funguje pokud zadám, že se má funkce spustit při událostech keyup a change. Když ale přidám i událost blur, tak mi ten alert vyskočí dvakrát, ale jen u IE8 a FF (20.0.1). Nevíte někdo v čm je háček?
Kód: var pocet_znaku = function(max){ znaky=$("#pole").val().length; max_zn=max; if (znaky==0){$("#pole").css("background-color","#ffdfdf").css("border","2px solid #f00");} else{$("#pole").css("background-color","#fff").css("border","1px solid #7f8db9");} znaky=max_zn-znaky; if (znaky>=0){$("#bar").text(znaky).css("color","white");} else{ znaky2=znaky*(-1); $("#bar").text(znaky2).css("color","white").css("border","1px solid #000"); } if (znaky<0){ $("#pole").css("color","red"); if (warning==5){alert("Maximální délka textu byla překročena o "+znaky2+" znaků!");} }else{ $("#pole").css("color","black"); } } $("#pole").bind("keyup blur change", function(){pocet_znaku(5)}); |
||
Chamurappi Profil |
#2 · Zasláno: 15. 4. 2013, 12:55:24
Reaguji na mayczu:
„Nevíte někdo v čm je háček?“ V ničem není háček. Funkce pocet_znaku se vyvolává při všech třech událostech. Jedna uživatelská akce může vyvolat víc událostí najednou, takže když dojde k onblur u i k onchange , vyskočí alert dvakrát.
Osobně mi připadá zbytečně násilné reagovat alert em na něco jiného, než je klik na aktivní prvek.
|
||
maycza Profil |
#3 · Zasláno: 15. 4. 2013, 13:24:05 · Upravil/a: maycza
No.. máte pravdu, že počítání znaků stačí nechat na události
onKeyup , popř. onChange a samotný alert zobrazit (pokud by byla překročena povolená délka řetězce) při události onSubmit nebo onClick . To mě nenapadlo O:-)
Jen nevím, proč tedy nevyskakuje alert 3x, podle toho co píšete je logické že funkce pocet_znaku se spustí při každé z událostí, což by ale znamenalo, že po překročení povolené délky se zobrazí alert při události onKeyup , tím dojde ke ztrátě fokusu <textarea> a také došlo ke změně jejího obsahu...Jinak díky za reakci :) zkusím to přes tu onSubmit :-P
|
||
Časová prodleva: 11 let
|
0