티스토리 뷰

Computer/Script Languages

javascript의 textarea 글자수 제한

인생이글케쉬우냐 2009. 6. 3. 17:34
출처 : http://kin.naver.com/detail/detail.php?d1id=1&dir_id=10112&eid=uASgkLAdc8RCzs0FhejAHWP0gJAxbzYc&qb=ZnVuY3Rpb24gZmNfY2hrX2J5dGUoYXJvX25hbWUsYXJpX21heCk=&enc=utf8&pid=fAh0/woi5TossZOEIhosss--153665&sid=SiY082gRJkoAAEktxbQ

<script language="javascript">
/*
' ------------------------------------------------------------------
' Function : fc_chk_byte(aro_name)
' Description : 입력한 글자수를 체크
' Argument : Object Name(글자수를 제한할 컨트롤)
' Return :
' ------------------------------------------------------------------
*/
function fc_chk_byte(aro_name,ari_max)
{

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;
}
// 그밗의 경우는 1을 더한다.
else
{
li_byte++;
}

// 전체 크기가 li_max를 넘지않으면
if(li_byte <= li_max)
{
li_len = i + 1;
}
}

// 전체길이를 초과하면
if(li_byte > li_max)
{
alert( li_max + " 글자를 초과 입력할수 없습니다. \n 초과된 내용은 자동으로 삭제 됩니다. ");
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 name="txt_aaa" rows="5" cols="60" onkeyup="fc_chk_byte(this,10);" onkeypress="fc_chk2()" >


반응형

'Computer > Script Languages' 카테고리의 다른 글

[Jquery] 플러그인  (0) 2010.02.01
[javascript] 숫자 유효성 검사  (2) 2009.06.05
prototype.js  (0) 2009.05.14
Script / CSS + 한줄짜리 웹소스  (0) 2009.05.14
베스트 자바스크립트 (Best Javascript)  (0) 2009.05.14