본문 바로가기

Javascript

댓글 부분의 글자수 제한 스크립트 (고급)

으메
이거 짜느라 머리 아펐으..

근데 좀더 수정이 필요할듯 싶네용.. 으하하하

제가 좀더 해보구 의견 있으신 분들은 말씀 남겨 주셔도 됩니다.

==================================================================================================

<script>
<!--
 var OrgText = '';
 var CharLength = 0;
 var OrgCharLength = 0;
 var OrgTextLength = 0;

 // 텍스트 박스 글자수 제한
 function CheckCmtContents(TempValue)
 {
  var NowLength = TempValue.length; // 현재 가져온 입력된 길이
  var OneCharacter = ""; // 한글자씩 넣어둘 임시 변수

 
  // 저장된 길이와 같은지 비교
  if (NowLength > OrgTextLength){
   // 저장된 길이 보다 많을 경우 초과된 부분만 비교
   for(i=OrgTextLength ; i< NowLength ; i++)
   {
    // 한글자추출
    OneCharacter = TempValue.charAt(i);

    // 한글이면 2를 더한다.
    if (escape(OneCharacter).length > 4){
     CharLength += 2;
    }
    // 그밗의 경우는 1을 더한다.
    else{
     CharLength++;
    }

    // 전체길이를 초과하면
    if(CharLength > 400)
    {
     alert( "400 바이트를 초과 입력할수 없습니다. \n 초과된 내용은 자동으로 삭제 됩니다. ");
     document.form2.CONTENT.value = OrgText;
     document.getElementById("CmtLength").innerText = OrgCharLength;
     return;
    }
    else{
     OrgText += OneCharacter;
     OrgTextLength = TempValue.length;
     OrgCharLength = CharLength;
    }
   }
  }

  else if (NowLength < OrgTextLength){
   OrgText = "";
   CharLength = 0;
   // 저장된 길이보다 작은 경우 처음부터 검색
   for(i=0 ; i< NowLength ; i++)
   {
    // 한글자추출
    OneCharacter = TempValue.charAt(i);

    // 한글이면 2를 더한다.
    if (escape(OneCharacter).length > 4){
     CharLength += 2;
    }
    // 그밗의 경우는 1을 더한다.
    else{
     CharLength++;
    }
    OrgText += OneCharacter;
   }
   OrgTextLength = TempValue.length;
  
  }

  else{
   // 저장된 길이와 같은 경우 무시
   return;
  }
  document.getElementById("CmtLength").innerText = CharLength;
  return;
 }
//-->
</script>


<textarea name="CONTENT" style="width:645;height:38;" onfocus="clearText(this)" onkeyup="CheckCmtContents(this.value)">개인정보 유출, 저작권/인격침해, 허위사실 유포 등 타인의 권리를 침해하는 내용은 임의 삭제되거나 관련법에 따라처벌될 수 있습니다.</textarea>
<span id="CmtLength">0</span>/400바이트 (한글 200자)