function cal_pre()
{
var tmpStr;
tmpStr = $("#mgmtMthdCtt").val(); // textarea의 값
cal_byte(tmpStr);
}
function cal_byte(aquery) {
var tmpStr;
var temp=0;
var onechar;
var tcount;
tcount = 0;
tmpStr = new String(aquery);
temp = tmpStr.length;
for (k=0;k<temp;k++)
{
onechar = tmpStr.charAt(k);
if (escape(onechar) =='%0D') { }
else if (escape(onechar).length > 4) { tcount++; }
else { tcount++; }
}
$("#currentMsgLen").html(tcount); //글자 수 입력(span)
if(tcount > 150) { //글자 수 지정
reserve = tcount - 150;
alert("150자 이상 작성하실 수 없습니다.");
nets_check($("#mgmtMthdCtt").val());
return;
}
}
function nets_check(aquery) {
var tmpStr;
var temp=0;
var onechar;
var tcount;
tcount = 0;
tmpStr = new String(aquery);
temp = tmpStr.length;
for(k=0;k<temp;k++)
{
onechar = tmpStr.charAt(k);
if(escape(onechar).length > 4) {
tcount ++; //한글or특수문자일 경우(보통 +=2)
} else {
// 엔터값이 들어왔을때 값(\r\n)이 두번실행되는데 첫번째 값(\n)이 들어왔을때 tcount를 증가시키지 않는다.
if(escape(onechar)=='%0A') {
} else {
tcount++;
}
}
if(tcount > 150) { // 150 자 이상시 글자수 자르기
tmpStr = tmpStr.substring(0,k);
break;
}
}
$("#mgmtMthdCtt").val(tmpStr); // 잘린 글자수 만큼만 textarea에 입력
cal_byte(tmpStr);
}
<textarea id="mgmtMthdCtt" name="mgmtMthdCtt" onkeyup="javascript:cal_pre();">
<p class="txt"><span id="currentMsgLen">0</span>/150자</p>
'Frontend > JS' 카테고리의 다른 글
jQuery Ajax 요청 취소하기 (0) | 2016.09.08 |
---|---|
JQuery - Select (0) | 2012.02.21 |
팝업 창 리사이징 (0) | 2011.01.26 |