function updateChar(length_limit, seq)
{
var comment='';
comment = eval("document.form1.comment"+seq);
var form = document.form1;
var length = calculate_msglen(comment.value);
document.getElementById("textlimit").innerHTML = length;
if (length > length_limit) {
alert("최대 " + length_limit + "byte이므로 초과된 글자수는 자동으로 삭제됩니다.");
comment.value = comment.value.replace(/\r\n$/, "");
comment.value = assert_msglen(comment.value, length_limit);
}
}
function calculate_msglen(message)
{
var nbytes = 0;
for (i=0; i<message.length; i++) {
var ch = message.charAt(i);
if(escape(ch).length > 4) {
nbytes += 2;
} else if (ch == '\n') {
if (message.charAt(i-1) != '\r') {
nbytes += 1;
}
} else if (ch == '<' || ch == '>') {
nbytes += 4;
} else {
nbytes += 1;
}
}
return nbytes;
}
function assert_msglen(message, maximum)
{
var inc = 0;
var nbytes = 0;
var msg = "";
var msglen = message.length;
for (i=0; i<msglen; i++) {
var ch = message.charAt(i);
if (escape(ch).length > 4) {
inc = 2;
} else if (ch == '\n') {
if (message.charAt(i-1) != '\r') {
inc = 1;
}
} else if (ch == '<' || ch == '>') {
inc = 4;
} else {
inc = 1;
}
if ((nbytes + inc) > maximum) {
break;
}
nbytes += inc;
msg += ch;
}
document.getElementById("textlimit").innerHTML = nbytes;
return msg;
}
'내가 자꾸 까먹어서 쓰는 개발 이야기 > JavaScript' 카테고리의 다른 글
[펌] 크롬에서 ModalWindow의 리턴값 받기 (0) | 2013.01.16 |
---|---|
스크립트에서 number_format (0) | 2009.10.20 |
브라우저 안쪽의 사이즈 (0) | 2008.06.10 |
iframe 사이즈 자동 조정 (0) | 2007.11.27 |
marquee 태그로 랜덤 메시지 표시하기 (0) | 2007.07.03 |
최근댓글