채택완료

게시판글쓰기 글자수 제한 및 경고창 문의드립니다.

게시판글쓰기 화면 write.skin.php 에서

<div class="write_div">    
    <label for="wr_1" class="sound_only">등록번호<strong>필수</strong></label>
    <input type="text" name="wr_1" value="<?php echo $wr_1 ?>" id="wr_1" required class="frm_input half_input required" size="17" maxlength="17" placeholder="등록번호 17자리를 입력해주세요.">
</div>

 

17자리를 입력하지 않으면, 경고창이 뜨게 하고 싶습니다. (17자리를 입력해야 다음 항목으로 넘어가도록)

 

기존에 질문들을 다 뒤져보고 적용해 보아도 잘 되지 않아서 이렇게 글을 올립니다.ㅠㅠ
고수님들~부탁드립니다~

답변 3개 / 댓글 3개

채택된 답변
+20 포인트

답변에 대한 댓글 1개

고수님 빠른 답변 감사합니다.^^ 테스트 해보니
알려주신대로 적용해보니 정상적으로 작동 됩니다. 고수님 감사합니다. ^^

Copy
<script language=javascript>


function displayBytes( sz, id )
{
 var form = document.form;

 var obj = document.getElementById( id );

 if (obj.value.bytes() < sz)
 { //80바이트를 넘기면
  if (event.keyCode != '8') //백스페이스는 지우기작업시 바이트 체크하지 않기 위해서
  {
   alert('질문1 17글자 이상 입력해야합니다.');
 //obj.value = obj.value.substring(0,sz);
    //var text1 = $('.id');
    obj.focus();


  }
  //obj.value = obj.value.substring(0, obj.value.length-1);
 }

 eval('document.all.'+id+'_bytes').innerHTML = eval('form.'+id).value.bytes()+" byte";
}

String.prototype.bytes = function()
{
 var str = this;
 var l = 0;
 for (var i=0; i<str.length; i++) l += (str.charCodeAt(i) > 128) ? 2 : 1;
 return l;
}

 


</script>

</HEAD>

<BODY>

<form name='form'>
질문1.<br>
<textarea id='chk1' name='chk1'  cols='30' rows='10' style='overflow:hidden;'></textarea>
<div name='chk1_bytes' id='chk1_bytes'></div>
<br>
질문2.<br>
<textarea id='chk2' name='chk2' onkeyup='javascript:displayBytes(34,"chk1");' cols='30' rows='10' style='overflow:hidden;'></textarea>
<div name='chk2_bytes' id='chk2_bytes'></div>

</form>

 

 

참고하세요.

답변에 대한 댓글 1개

고수님 답변 감사합니다.^^ 테스트 해보겠습니다.~~

   <input type="text" name="wr_1" id="wr_1" value="<?php echo $wr_1 ?>" id="wr_1" required class="frm_input half_input required" size="17" maxlength="18" placeholder="등록번호 17자리를 입력해주세요." onkeyup="byte_check('wr_1');">

<script language="JavaScript">

function byte_check(wr_1)
{
    var pos, pch, ch;
    var cnt = 0;
    var text = document.getElementById('wr_1');


    var len = text.value.length;
    for (i=0;i<len;i++){
        pos = text.value.charAt(i);


        // 자리수 계산.
        ch = escape(pos);
        if (pch == '%0D' && ch == '%0A') { } // 2byte enter (\n\r)
        else if (ch.length > 4) cnt += 2;
        else cnt++;
        pch = ch;
    }

 if (cnt  > 17) {
        alert(' 글자수는 17자까지 가능합니다.');
        //document.getElementById('wr_2').focus();
   }
}

</script>

답변에 대한 댓글 1개

고수님 답변 감사합니다.^^ 테스트 해보겠습니다.~~

답변을 작성하려면 로그인이 필요합니다.