input type이 number 경우 maxlength가 먹히지 않어 스크립트 제어가 필요해짐.

/* ********************************************************
 * 기타 class 이벤트 적용
 * vPoint12 : 정수 10자리 소수점 2자리 까지 입력되도록
 * vNum10 : 정수만 10자리 입력되도록
 ******************************************************** */
function fnEtcClassEvent(){
    $(".vPoint12").each(function(){
        // .(마침표)가 양끝에 있는 케이스를 처리
        $(this).off('blur').on('blur',function(e){
            var value = $(this).val();
            var regExp = /^\.|\.$/;
            if(regExp.test(this.value)){
                $(this).val(value.replace('.',''));
            }
        });
        
        // 소수점 둘째자리까지의 실수만 입력 허용
        $(this).off('input').on('input',function(e){
            var value = $(this).val();
            var regExp = /^\d{0,10}(\.\d{0,2})?$/;
            if(!regExp.test(this.value)){
                $(this).val(value.substring(0,value.length-1));
            }
        });
        
        // 숫자와 .(마침표)만 입력 허용
        $(this).off('keypress').on('keypress',function(e){
            e = e || window.event;
            var charCode = e.which || e.keyCode;
            if (!((charCode >= 48 && charCode <= 57) || charCode === 46)){
                return false;
            }
        });
    });
    
    $(".vNum10").each(function(){
        // 정수만 입력 허용
        $(this).off('input').on('input',function(e){
            var value = $(this).val();
            var regExp = /^\d{0,10}$/;
            if(!regExp.test(this.value)){
                $(this).val(value.substring(0,value.length-1));
            }
        });
        
        // 숫자만 입력 허용
        $(this).off('keypress').on('keypress',function(e){
            e = e || window.event;
            var charCode = e.which || e.keyCode;
            if (!((charCode >= 48 && charCode <= 57))){
                return false;
            }
        });
    });
}

반응형

+ Recent posts