ugrás a tartalomhoz

Textarea - maximum karakter szám JS-sel

Anonymous · 2006. Aug. 9. (Sze), 13.15
Helo,

van egy üzenetküldő formom, egy textarea...
szeretnék karakter limitátlást, ha ezt túllépi
a felhasználó, felugrik egy alert.
Persze csak submitnál, nem íráskor, bár az se lenne rossz.

probáltam ezt a maxlenth paraméter is de az nem elég.
Szoval OnSubmitnál vizsgálom a mezőt a köv js-el:
  1. if (document.form.textarea.value.length > 1000) {  
  2.  alert('Túl hosszú szöveg!');  
  3.  document.form.textarea.focus();  
  4.  return=false;  
  5. }  
de nem jön alert ha hosszabb a szöveg.

Más megoldás?
 
1

maximum karakter

Anonymous · 2006. Aug. 9. (Sze), 14.01
A form-nak be van állítva a neve "form"-ra, és a textarea-nak "textarea" nevet adtál?
A return az nem értékadás, helyesen: return false

Gyulus
2

én

Anonymous · 2006. Aug. 10. (Cs), 05.21
most csak logikailag vázoltam fel...
másképp néz ki a kód, így érthetőbbnek gondoltam.:)
de return=false elírás, thx.
3

Próbáld így!

PogiG · 2006. Aug. 10. (Cs), 18.09
if(document.getElementById('szoveg1').value.length > 1000){
alert('Túl hosszú szöveg!');
document.getElementById('szoveg1').focus();
return false;
}

A Textarea -nak adj ID -t (jelen esetben szoveg1).
4

ok

Anonymous · 2006. Aug. 14. (H), 11.19
ok
5

ok

Anonymous · 2006. Aug. 14. (H), 11.32
nem működik byIdvel sem ...
érdekes pedig az üres/nemüres alert megy így is úgy is.
No mind1. találtam olyan htc-t - maxlength.htc - ami
nem is enged többet beírni. csak az meg ff alatt nem megy :)
no mind1,azért kössz.
6

onkeydown

sly · 2006. Aug. 14. (H), 11.43
Onkeydown eseménykor ajánlatos ellenőrizni a textarea hosszát, mivel ilyenkor még megakadájozható a karakter beírása.

Update: Egy használható kód:
  1. <script language="JavaScript" type="text/javascript">  
  2. <!--  
  3. function d(obj) {  
  4.     return document.getElementById(obj) != null ? document.getElementById(obj) : false;  
  5. }  
  6.   
  7. keyCodeMap = [8,33,34,36,35,37,38,39,40,46]  
  8. function haskeyCode(kc) {  
  9.     for (i=0;i<keyCodeMap.length;i++) {  
  10.         if (keyCodeMap[i] == kc) {  
  11.             return false;  
  12.             break;  
  13.         }  
  14.     }  
  15.     return true;  
  16. }  
  17.   
  18. function addEvent(obj, evType, fn) {  
  19.     if (obj.addEventListener) {  
  20.         obj.addEventListener(evType, fn, true);  
  21.         return true;  
  22.     } else if (obj.attachEvent) {  
  23.         var r = obj.attachEvent("on"+evType, fn);  
  24.         return r;  
  25.     } else {  
  26.         return false;  
  27.     }  
  28. }  
  29.   
  30. function doPopup(ev) {  
  31.     ev || (ev = window.event);  
  32.     if (d('textarea1').value.length >= 10 && haskeyCode(ev.keyCode)) {  
  33.         if (ev.preventDefault) {  
  34.             ev.preventDefault(); ev.stopPropagation();  
  35.         } else {  
  36.             ev.cancelBubble = trueev.returnValue = false;  
  37.         }  
  38.         return false;  
  39.     }  
  40. }  
  41.   
  42. intervall1 = setInterval(function () {  
  43.     if (d('textarea1')) {  
  44.         clearInterval(intervall1);  
  45.         addEvent(d('textarea1'),'keydown',doPopup);  
  46.     }  
  47. }, 10)  
  48. -->  
  49. </script>  
  50.   
  51. <textarea id="textarea1" name="szoveg1"></textarea>