메뉴 건너뛰기

조회 수 8836 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

input text 형식에서 문자를 입력받고 DB에 넣을때 사이즈가 커서 오류가 발생하는 경우가 발생합니다.


아래 예제는 앞에서 byte 수를 확인하고 정해진 byte 길이로 자른후 나머지 값을 입력하는 방식입니다.


처음에는 keyup 으로 처리 하였으나 blur로 변경하였습니다.


과거에 작성했던것의 업그레이드 버전입니다. (과거버전: http://huskdoll.tistory.com/386)


예제는 다음과 같습니다. 예제 밑에 inputbox에서 실제로 확인해보세요. (입력창에서 포커스가 벗어나면 실행됩니다.)


<!doctype html>
<html lang="kr">
<head>
  <meta charset="utf-8">
  <title>demo</title>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
  <script>
    $(document).ready( function() {
        //글자 byte 수 제한
        $('.byteLimit').blur(function(){
                         
            var thisObject = $(this);
             
            var limit = thisObject.attr("limitbyte"); //제한byte를 가져온다.
            var str = thisObject.val();
            var strLength = 0;
            var strTitle = "";
            var strPiece = "";
            var check = false;
                     
            for (i = 0; i < str.length; i++){
                var code = str.charCodeAt(i);
                var ch = str.substr(i,1).toUpperCase();
                //체크 하는 문자를 저장
                strPiece = str.substr(i,1)
                 
                code = parseInt(code);
                 
                if ((ch < "0" || ch > "9") && (ch < "A" || ch > "Z") && ((code > 255) || (code < 0))){
                    strLength = strLength + 3; //UTF-8 3byte 로 계산
                }else{
                    strLength = strLength + 1;
                }
                 
                if(strLength>limit){ //제한 길이 확인
                    check = true;
                    break;
                }else{
                    strTitle = strTitle+strPiece; //제한길이 보다 작으면 자른 문자를 붙여준다.
                }
                 
            }
             
            if(check){
                alert(limit+"byte 초과된 문자는 잘려서 입력 됩니다.");
            }
             
            thisObject.val(strTitle);
             
        });
    });
     
  </script>
</head>
<body>
    10byte 제한: <input type="text" class="byteLimit" limitbyte="10"><br><br><!-- limitbyte로 제한byte를 셋팅-->
    20byte 제한: <input type="text" class="byteLimit" limitbyte="20"><br><br>
    30byte 제한: <input type="text" class="byteLimit" limitbyte="30">
</body>
</html>

10byte 제한:

20byte 제한:

30byte 제한:


List of Articles
번호 제목 날짜 조회 수
39 JS 첵박스 샘플 2019.06.04 694
38 모달 띄우는 코드 2021.03.25 657
37 jQuery - checkbox 전체 선택, 해제 기능 및 단일 체크박스가 해제되었을때 전체 선택 해제 하기 file 2021.03.09 613
36 간단한 마우스 포인터 따라 다니기 2021.03.26 594
35 jQuery - ajax xhr을 활용한 파일 업로드 진행 상태 확인하기 file 2021.03.09 586
34 jQuery - 클릭이벤트 동적 처리하기($("").click(), on('click') 차이) file 2021.03.09 579
33 SELECTBOX MULTIPLE 검색하기 2021.03.26 568
32 jQuery - radio, checkBox값 가져오기, 선택하기, 제어 등 file 2021.03.09 543
31 ajax 동기화 처리하기 2021.03.25 416
30 Cesium에서 canvas 화면 center 지점의 좌표 취득 2021.03.25 368
29 jQuery - 드래그, 리사이즈 이벤트에 따른 영역 침범 막기 file 2021.03.09 363
28 목록의 체크 선택/해제에 따라 [전체선택] 체크박스를 체크하거나 해제하기 2021.03.25 329
27 최초 접속시 css와 script가 로딩되지 않을때 2021.03.25 322
26 다중 select 2021.03.31 316
25 click에 따른 마우스 휠 on off 2021.03.31 299
24 jQuery - 드래그앤드롭(DragAndDrop)을 통한 파일 업로드 file 2021.03.09 291
23 fadeIn() , fadeOut() 을 이용한 간단한 자동 그림 전환 2021.03.26 285
22 항상 최신버전으로 사용하기 2021.03.26 284
21 기본 동작 막기 2021.03.25 284
20 javascript, jQuery에서 루프 돌리기 예 (for, forEach, each) 2021.03.25 276
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 Next
/ 9

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved