Ahoj!
Neviem to dobre popisat, ale potrebujem nieco take ako v SMS na niektorych mobilnych telefonoch, ze pri pisani sa niekde hore zobrazuje, kolko este znakov ostava... Ked to dojde na nulu, ukaze mu to, ze uz pise druhu SMS (ked je moc dlha)... Ja potrebujem nastavit limit napr., 60 znakov v <textarea>. Keby sa tam zobrazilo aj to odpocitavanie ako v SMS... Dufam ze som to popisal dost jasne... Neviem ci to patri do tejto sekcie, ale myslim si, ze JavaScript by to mohol vyriesit... POZOR: V JavaScripte som uplna lama, tak majte zlutovanie :) Diky za vsetky napady a prispevky...
Fórum › JavaScript, AJAX, jQuery
Pocitanie pouzitelnych znakov ako v SMS
Pokud jsem to dobře pochopil, tak potřebujete zobrazit počet zpráv, do kolika bude text rozdělěn a počet znaků do konce zprávy.
<HTML>
<HEAD>
<TITLE></TITLE>
<script lanuguage=javascript type=text/javascript>
function zjisti() {
var zprav = Math.ceil(pole.value.length/60) //vypocte se pocet zprav: delka textu/60
var zbyva=Math.abs(pole.value.length-(zprav*60)) //vypocte se pocet znaku zbyvajicich do konce zpravy
info.innerHTML="Zpráv: "+zprav+" Zbývá znaků: "+zbyva //zobrazi obe informace
}
</script>
<BODY onkeyup=zjisti()>
<div id=info></div>
<textarea name=pole></textarea>
</BODY>
</HTML>
to kaktus
Funguje jen v IE (konkrétně: 1. pole.value.... 2. info.inner....)
Je tam logická chyba: místo do konce 1.zprávy zbývá 60 znaků je stav nultá zpráva 0 znaků do konce.
OnKeyup bych dal do textarey - neboť mačkání kláves v jiných polích nemění stav zpráv(y)
Zároveň bych předal fci zjisti(THIS): = zjisti(pole)
to Tocimanko
Co se má stát až uživatel stiskne 61.znak? Odešle se něco? Anebo se neděje vůbec nic, až v okamžiku, když uživatel celou textareu odešle tlačítkem? (Mobil nepoužívám - takže si to chci ujasnit :=)
Uau, toto vlakno sa mi nejak stratilo, teraz pozeram s udivom na vase riesenia :)
To Petroff : Potrebujem nieco take ako je u inputboxu: maxlenght (tusim) .. Urcit maximalnu dlzku znakov v textarea.. To zobrazovanie, kolko znakov este ostava - na to sa asi vykaslem :( Staci mi len toto obmädzenie.. Diky za kazdy napad..
Zkusil jsem to a nefunguje (ve FF)
Tohle už ano (akorát stále nultá zpráva...atd je třeba opravit algor.):
<HTML>
<HEAD>
<TITLE>SMS</TITLE>
<style type="text/css">
input {text-align:right; width:3ex}
</style>
<script type=text/javascript>
zprava_znaku=60;
function zjisti(pole) {
var zprav = Math.ceil(pole.value.length/60) //vypocte se pocet zprav: delka textu/60
var zbyva=Math.abs(pole.value.length-(zprav*60)) //vypocte se pocet znaku zbyvajicich do konce zpravy
pole.form.info_zbyva.value=zbyva; //zobrazi obe informace
pole.form.info_zprav.value=zprav; //zobrazi obe informace
}
</script>
<BODY>
<form>
Zbývá<input type=text size=2 name="info_zbyva">znaků do konce<input type=text size=2 name="info_zprav">.zprávy
<textarea name="vstup" onkeyup=zjisti(this)></textarea>
</form>
</BODY>
</HTML>
Textarea je plocha tj pocet znaku=sirka X vyska
Da se nastavit cols=xxx rows=yyy
Aby se nezobrazil posuvník je třeba ve stylech nastavit overflow:hidden
<textarea name="vstup" cols="12" rows="5" style="overflow:hidden" >
Ale stejně si myslím že to nepůjde = textarea neumí samovolně odřádkovat.
A neumí omezit počet znaků.
Šlo by to jedině s text-inputem nastaveným na size=60 maxlength=60 tj. ošklivá nudle
Osobna otazka mimo temy To Petroff : Vobec nepouzivas mobil, alebo len nepises sms ?!?
Textarea naozaj nedokáže obmedziť svoju dĺžku. Dá sa to však riešiť javascriptom, odsledovať onkeydown a ak už je length pridlhý, tak returnuť false, a znak sa nevpíše. Teda aspoň myslím že to tak pôjde. Prípadne sa to dá skontrolovať aj dodatočne, po zadaní znaku zistiť počet, ak je priveľa, tak jeden znak sa zmaže...
To Petroff : Tak to ti vážne závidím :-)
...Ak sa pýtaš na ten 61. znak, tak v telefóne je ten limit o niečo vyžší ...ak prešvihneš limit jednej smsky, tak ti ju telefón (ako ktorý) rozdelí a odošle ako dve, alebo viac správ...
To Prog. : Zajímavé je, že když (právě teď) píšu tento příspěvek do TEXTAREY tak dojde k automatickému <právě teď>odřádkování. JS to nedělá, takže jak ??? / je tam width:100% overflow:visible a cols=-1 Nechápu. . .
Takže jsem trošku zazmatkoval - v podstatě je text umísťován jako v tagu pre,z čehož plyne že k přetečení dojde u posloupnosti nemezerových znaků delší než je šířka TA ve znacích a že vizualně nelze stanovit počet mezer na koncích řádků. Takže mluvit o kapacitě TA=cols x rows je nepravda, stejně tak z pozice kursoru nelze určit počet zapsaných znaků. Jedině z value.length.
Takže sorry
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Počítanie znakov v reťazci — založil WhatsThiSs
Integer ako premenná na načítavanie znakov — založil Cpl
Pocitanie slov — založil myth
Moderátoři diskuze