<style type=”text/css”>
/*********************************************************
* javascript 글자수 제한 함수
*********************************************************/
/*
‘ ——————————————————————
‘ Function : fc_chk_byte(aro_name)
‘ Description : 입력한 글자수를 체크
‘ Argument : Object Name(글자수를 제한할 컨트롤)
‘ Return :
‘ ——————————————————————
*/
function fc_chk_byte(aro_name,ari_max,type){
var ls_str = aro_name.value; // 이벤트가 일어난 컨트롤의 value 값
var li_str_len = ls_str.length; // 전체길이
// 변수초기화
var li_max = ari_max; // 제한할 글자수 크기
var i = 0; // for문에 사용
var li_byte = 0; // 한글일경우는 2 그밗에는 1을 더함
var li_len = 0; // substring하기 위해서 사용
var ls_one_char = “”; // 한글자씩 검사한다
var ls_str2 = “”; // 글자수를 초과하면 제한할수 글자전까지만 보여준다.
for(i=0; i< li_str_len; i++){
// 한글자추출
ls_one_char = ls_str.charAt(i);
// 한글이면 2를 더한다.
if (escape(ls_one_char).length > 4){
li_byte += 2;
}else{// 그밗의 경우는 1을 더한다.
li_byte++;
}
// 전체 크기가 li_max를 넘지않으면
if(li_byte <= li_max){
li_len = i + 1;
}
}
$(“#”+type+”_length”).text(li_byte);
// 전체길이를 초과하면
if(li_byte > li_max){
$(“#”+type+”_length”).text(li_max);
ls_str2 = ls_str.substr(0, li_len);
aro_name.value = ls_str2;
}
aro_name.focus();
}
/*
‘ ——————————————————————
‘ Function : fc_chk2()
‘ Description : Enter키를 못치게한다.
‘ Argument :
‘ Return :
‘ ——————————————————————
*/
function fc_chk2(){
if(event.keyCode == 13) event.returnValue=false;
}
</script>
textarea 태그에서 fc_chk_byte를 함수를 호출함으로써 2번자 인자에 입력 글 자 수를 제한한다. fc_chk2함수는 엔터키를 제한한다 ^^;
한글 입력은 한글자에 2byte이기 때문에 함수에 1000으로 입력하면 500글자로 제한이 된다.
<textarea name=”contents” style=”height:100px;width: 402px” id=”msg_contents” onkeyup=”fc_chk_byte(this,1000,’msg’);” onkeypress=”fc_chk2()”></textarea>