[급질]input box byte 체크시 한글 오류 수정요청합니다.
Posted: 2009 10 23 12:41 44
input box에서 쓰여지는 글자의 byte를 체크해서 보여주는 로직을 사용중에
IE는 무난하지만 FF(3.5)에서 유독 한글 입력시에 굳이 input box를 클릭해야만 바이트수를 체크합니다.
로직이 잘못되어 있는지 확인부탁드리고 해결 방안을 제시해주십시요.
jsp 단
var oldStr, oldCnt;
function checkByte(element)
{
var onechar;
var tcount = 0;
for (k=0;k<element.value.length;k++) {
onechar = element.value.charAt(k);
if (escape(onechar).length > 4)
tcount += 2;
else if (onechar == '\r' && element.charAt(k+1) == '\n') {
tcount++;
} else if (onechar != '\n') {
tcount++;
}
}
if(tcount>200) {
document.comment.cbyte.value = tcount;
alert("허용된 글자수가 초과되었습니다.\r\n초과된 부분은 자동으로 삭제됩니다.");
element.value = oldStr;
tcount = oldCnt;
}
oldStr = element.value;
oldCnt = tcount;
document.comment.cbyte.value = tcount;
}
html단
<td><textarea name="content" rows="5" style="width:555; overflow:auto;" onKeyUp="checkByte(this)"></textarea></td>
<td><input type="text" name="cbyte" class=byte value="0" size="3" readonly></td>
IE는 무난하지만 FF(3.5)에서 유독 한글 입력시에 굳이 input box를 클릭해야만 바이트수를 체크합니다.
로직이 잘못되어 있는지 확인부탁드리고 해결 방안을 제시해주십시요.
jsp 단
var oldStr, oldCnt;
function checkByte(element)
{
var onechar;
var tcount = 0;
for (k=0;k<element.value.length;k++) {
onechar = element.value.charAt(k);
if (escape(onechar).length > 4)
tcount += 2;
else if (onechar == '\r' && element.charAt(k+1) == '\n') {
tcount++;
} else if (onechar != '\n') {
tcount++;
}
}
if(tcount>200) {
document.comment.cbyte.value = tcount;
alert("허용된 글자수가 초과되었습니다.\r\n초과된 부분은 자동으로 삭제됩니다.");
element.value = oldStr;
tcount = oldCnt;
}
oldStr = element.value;
oldCnt = tcount;
document.comment.cbyte.value = tcount;
}
html단
<td><textarea name="content" rows="5" style="width:555; overflow:auto;" onKeyUp="checkByte(this)"></textarea></td>
<td><input type="text" name="cbyte" class=byte value="0" size="3" readonly></td>