반응형
textarea 글자수 체크 하기

<html>
<head>
	<meta charset="utf-8">
	<title>textarea maxlength</title>
	<script>
		function checkcnt(obj,maxcnt){
			var cnts=obj.value;
			var cnt=cnts.length;
			var msg;
			var nowcnt=0;
			
			//입려되어있는 글자수만큼 반복
			for(i=0;i<cnt;i++){
				//txt에 i위치에 해당되는 글자 입력
				txt=cnts.charAt(i);
					// escape한 txt의 길이를 체크해서 4이상이면(한글) nowcnt + 2 
					if( escape(txt).length > 4){
						nowcnt+=2;
					}else{
						//아니면서 escape한 txt가 엔터값이 아니면 (엔터의 경우 %0D,%0A 두번 되는데
						//엔터는 1바이트 처리) nowcnt + 1
						if(escape(txt)!='%0A'){
							nowcnt++;
						}
					}
					//nowcnt 가 maxcnt 보다 크면 
					if(nowcnt>maxcnt){
						alert('글자수 초과');
						//txta 에 cnts의 값을 0 부터 i 까지 잘라서 입력
						document.getElementById("txta").value=cnts.substring(0,i);
						break;
					}else{
						//nums에 현재 바이트수 입력
						document.getElementById("nums").innerHTML=nowcnt+"byte";
					}
			}
		}
	</script>

</head>
<body>
	<textarea  id="txta" cols=50 rows=10 onkeyup="return checkcnt(this,10)"></textarea>
	<span  id="nums" style="width:100px;">0byte</span>
</body>
</html>

http://azit4u.phps.kr/script/maxlength.html


charAt(i) --> i번째 해당 되는 글자
반응형

'자바스크립트' 카테고리의 다른 글

자바스크립트로 각자리 숫자 합계 구하기  (0) 2014.01.24
javascript 메뉴  (0) 2011.10.05
javascript 롤링  (0) 2011.07.27

+ Recent posts