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:

if (document.form.textarea.value.length > 1000) {
 alert('Túl hosszú szöveg!');
 document.form.textarea.focus();
 return=false;
}
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:

<script language="JavaScript" type="text/javascript">
<!--
function d(obj) {
	return document.getElementById(obj) != null ? document.getElementById(obj) : false;
}

keyCodeMap = [8,33,34,36,35,37,38,39,40,46]
function haskeyCode(kc) {
	for (i=0;i<keyCodeMap.length;i++) {
		if (keyCodeMap[i] == kc) {
			return false;
			break;
		}
	}
	return true;
}

function addEvent(obj, evType, fn) {
	if (obj.addEventListener) {
		obj.addEventListener(evType, fn, true);
	    return true;
	} else if (obj.attachEvent) {
	    var r = obj.attachEvent("on"+evType, fn);
	    return r;
	} else {
	    return false;
	}
}

function doPopup(ev) {
	ev || (ev = window.event);
	if (d('textarea1').value.length >= 10 && haskeyCode(ev.keyCode)) {
		if (ev.preventDefault) {
			ev.preventDefault(); ev.stopPropagation();
		} else {
			ev.cancelBubble = true; ev.returnValue = false;
		}
	  	return false;
	}
}

intervall1 = setInterval(function () {
	if (d('textarea1')) {
		clearInterval(intervall1);
		addEvent(d('textarea1'),'keydown',doPopup);
	}
}, 10)
-->
</script>

<textarea id="textarea1" name="szoveg1"></textarea>