Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Javascript] Odlicznianie znaków i blokowanie textera
Forum PHP.pl > Forum > Przedszkole
Gość
Witam,
Używam takich skryptów do odliczania ile zostało znaków do napisania i do blokowania textera:
  1. <script type="text/javascript">
  2. function counter( dataElem )
  3. {
  4. var maxLength = 500;
  5. var oSpan = document.getElementById( 'counter' );
  6. oSpan.innerHTML = (maxLength - ( dataElem.length ) ) +' characters left';
  7. }
  8.  
  9. function textCounter(field, countfield, maxlimit)
  10. {
  11. if (field.value.length > maxlimit)
  12. field.value = field.value.substring(0, maxlimit);
  13. else
  14. countfield.value = maxlimit - field.value.length;
  15. }


i takie ma textera
  1. <textarea id="123" name="123" rows="5" cols="40" onkeyup="counter(this.value);" onKeyDown="textCounter(this.form.123,this.form.remLen,499);" onKeyUp="textCounter(this.form.123,this.form.remLen,499);"></textarea>


I ma pewien problem... jak zrobić żeby jak ktoś wkleja tekst większy od 499 znaków to żeby mu automatycznie usunęło tą ilośc znaków które nie powinny się tam znaleźć?? Bo teraz pokazuje np "-333"

Pozdrawiam i proszę o pomoc
skowron-line
Zrób akcje na onChange i policz sobie liczbe znaków i jezeli jest więcej niż 500 to substr i od 0 do 500 i wklejasz spowrotem smile.gif
Gość
Hym... Tylko że ja w ogóle nie kapuję javascript i nie wiem jak to napisać...
Mógłbym Cię prosić o napisani tego?
sowiq
http://forum.php.pl/index.php?showtopic=20881
http://serwis.magazynyinternetowe.pl/artyk...formularzu.html
http://www.google.pl/search?q=limit+znak%C...lient=firefox-a

Wklepanie 3 słów do Google zajęło mi na pewno mniej czasu niż Tobie napisanie tematu...

A jeśli jesteś po prostu leniwy, to zapraszamy na Giełdę - na pewno ktoś Ci chętnie pomoże.
F912D2
Witam,
Sorki że odgrzebuje temat ale nie chce zakładać nowego... Używam tych skryptów do liczenia znaków i blokowania w polu textarea ale znalazłem pewien problem...
Jak w textarea za pomocą skryptu dodaje dane np. <textarea name="333">ssssdsdsd sdsd</textarea> to te znaki są dopiero liczone jak aktywuje pole czyli w nie kliknę...
a jak mozna zrobić żeby od razu po odświeżeniu strony były zliczone??

Pozdraiwm
drPayton
Jeżeli dodajesz do textarea dane za pomoca skryptu, to zaraz po fragmencie, który to robi wywołaj funkcję odpowiedzialną za liczenie znaków...
Gość
yyy.... czyli jakąquestionmark.gif
drPayton
o_O

Tą, której używasz, a która obecnie wywoływana jest w momencie kliknięcia w pole textarea...
Gość
Używam takiej... tylko że ja nie umiem javascript i nie wiem jak ją wywołać...
Kod
function counter( dataElem )
{
   var maxLength = 500;
   var oSpan = document.getElementById( 'counter' );
   if( (maxLength - ( dataElem.length ) ) < 0 )
   {
      document.forms['rootform'].artshortsummary.value =  
      document.forms['rootform'].artshortsummary.value.substring(0, 500);
      oSpan.innerHTML = '0 characters left';
   }
   else
   {
      oSpan.innerHTML = (maxLength - ( dataElem.length ) ) +' characters left';
   }
}
drPayton
O mate...

  1. <script type="text/javascript">
  2. /* Tu kod wstawiający dane do textarea */
  3. counter(textareaId);
  4. /* gdzie textareaId to id pola textarea */
Gość
Ale ja wstawiam tekst za pomocą php...
drPayton
  1. <?php
  2. echo '<script type="text/javascript">
  3. counter(textareaId);
  4. /* gdzie textareaId to id pola textarea */
  5. </script>';
  6. ?>

Albo i nie...

Padam na pysk, więc nie chce mi się już myśleć, czy jakiejś głupoty nie napisałem, niech ktoś inny to napisze...
decha-design
Jak korzystam z czegoś takiego ...

  1. <script type="text/javascript">
  2. <!--
  3.  
  4. // Count words in the textarea
  5. var obj='0';
  6. var ilosc=500;
  7. var timer='';
  8. function iloscZnakow(o){
  9. if (o) obj=o;
  10. var div=document.getElementById('iloscZnakow');
  11. div.style.fontWeight='normal';
  12. var iloscWpisanych = obj.value.length;
  13. if (iloscWpisanych > ilosc)
  14. iloscWpisanych = '<span style="color: #FF0000">'+iloscWpisanych+'</span>';
  15. div.innerHTML='Znaków '+iloscWpisanych+' / ' +ilosc;
  16. timer=setTimeout('iloscZnakow()', 100);
  17. }
  18.  
  19. function skoncz(){
  20. clearTimeout(timer);
  21. var div=document.getElementById('iloscZnakow');
  22. div.style.fontWeight='normal';
  23. }
  24.  
  25. function licz(pole,max){
  26. if (pole.value.length > max){
  27. pole.value = pole.value.substr(0,max);
  28. }
  29. }


  1. <textarea onFocus="iloscZnakow(this)" onBlur="skoncz(this)" name="text" rows="10" cols="50" onkeyup="licz(this,500)"></textarea>
  2. <div id="iloscZnakow" style="text-align: center;">
  3. Znaków <script>document.write(parseInt(document.forms[0].text.value.length))</script> / 500
  4. </div>
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.