Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] zliczanie znaków w textarea
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
rimk
Mam taki skrypt:

  1. <script type="text/javascript">
  2. onl=window.onload||Function;
  3. onload=function(){
  4. onl();
  5. for(var i=0,d,k; d=document.getElementsByTagName('*')[i++];){
  6. if(d.className=='zostalo'){
  7. d.m=+d.innerHTML;
  8. (k=d.previousSibling).onkeypress=k.onkeyup=function(){
  9. var n=this.nextSibling;
  10. if(this.value.length>n.m)this.value=this.value.slice(0,n.m);
  11. n.innerHTML=n.m-this.value.length;
  12. }
  13. }
  14. }
  15. }
  16.  
  17. <textarea name="tresc" cols=30 rows=5></textarea><span class="zostalo">20</span>


Zlicza on ile zostało znaków do wpisania w textarea. Działa fajnie, ale potrzebne mi są dwa udogodnienia.
1) Ilość znaków musi być uaktualniona przy ładowaniu strony. Jeżeli np. wpiszę <textarea>abc</textarea> ilość znaków wynosi nadal 20 - dopiero po naciśnięciu klawisza zmieni się na 17.
2) Przy wklejaniu tekstu myszką jest problem - chciałbym, żeby przy każdej zmianie tekstu wartość się uaktualniała (onchange?)

Dzięki za pomoc! smile.gif
AxZx
nie wiem czy stosujesz tam php do generowania html?
jezeli tak to policz ilosc znakow w textarea a nastepnie wygeneruj odpowiednie
  1. <span class="zostalo">20</span>

z odpowiednia iloscia, zamiast 20 wpisz tam liczbe 20 - $ilosc_znakow_w_textarea
rimk
Wolałbym rozwiązanie na js. smile.gif
Myślę, że to można zrobić tongue.gif

ps. Poza tym Twój pomysł nie rozwiązuje problemu 2)
vokiel
Może dobrym pomysłem będzie użycie tej funkcji przy innych zdarzeniach jak: onKeyUp() albo onFocus()
skowron-line
  1. <script type="text/javascript">
  2. functiom cpount(){
  3. var fieldValue = document.getElementById('txt').value;
  4. document.getElementById('field').innerHTML = 160 - parseInt(fieldValue);
  5. }
  6. <textarea id="txt" onkeyup="count();" onfocus="count();"></textarea>
  7. Pozostalo<span id="field"></span>


*pisane z palca
rimk
Chodzi mi o modyfikację skryptu, który zamieściłem - jest bardziej praktyczny.
A onKeyUp() jest już w implementacji - potrzeba mi raczej reagowania na modyfikację wartości w textarea.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.