<html>
<head></head>
<body>
<script>

//숫자체크
function isNum(inputValue)  {

    var checkCode = inputValue.value.charCodeAt(inputValue.value.length-1);
    var str; 
    
    
    if(inputValue.value.length > 0 && !(checkCode >= 48 && checkCode <= 57)) {
         alert("숫자만 입력가능합니다.");
        
         var thisLength = inputValue.value.length;
         for(var i=0; i<thisLength; i++) {
          checkCode_for = inputValue.value.charCodeAt( inputValue.value.length-1 );
          if( !(checkCode_for >= 48 && checkCode_for <= 57) ) {
           str = inputValue.value.substring(0, inputValue.value.length-1);
           inputValue.value = str;
          }
         }
        
         inputValue.focus();
    
     }else if( inputValue.value.length == 0 || checkCode >= 48 && checkCode <= 57 ) { 
   
        inputValue.focus();
    }
}

//한글체크
function hangul()
{
if((event.keyCode < 12592) || (event.keyCode > 12687))
    alert("한글만 입력가능 합니다");
    event.returnValue = false
}


</script>

<form name="frm">
<table>
<tr>
    <td>
        <input type="text" name="aa" onkeyup="isNum(this)" >  <br>
        <input type="text" name="bb" onKeyPress="hangul();" >
    </td>
</tr>
</table>
</form>

-------------------------------------------------------------

참고. JavaScript - charCodeAt()메서드
var checkCode = inputValue.value.charCodeAt(inputValue.value.length-1);

숫자 0~9     => 48~57
영문 대문자 => 65~90
소문자 => 97~122
한글 가~힣  => 45032~55203
       자음    => 12593~12622
       모음    => 12623~12643

--------------------------------------------------------------
한꺼번에 체크하기

/**
 * 2010.10.22 추가
 * checkValidation(해당Table, 검사할Colunm, 숫자&한글 구분, 메시지 띄울 컬럼명)
 * ex) checkValidation('leftTable', 'l_rank', 'number', '순위');
 *      - 메시지 내용(1번째 순위  - 숫자만 입력 가능(불가)합니다)
 * List형태의 해당 번째 값도 체크
 */
function checkValidation(otable, checkColunm, objGubn, colunmName) {
 var otable_length = eval("document.all." + otable).rows.length;
 var str = '';
 var keyCheck = arguments[4];

 if(otable_length == 1) {
  str = isString(eval("document.all." + checkColunm),  objGubn, colunmName, 0, keyCheck);
 }else {
  for(var i=0; i<otable_length; i++) {
   str += isString(eval("document.all." + checkColunm + "[" + i + "]"), objGubn, colunmName, i, keyCheck);
  }
 }
 
 return str;
}
function isString(inputValue, v_check, headName, rownum, keyCheck) {
 var str = '';
 
 if(inputValue.value != "") {  //공백일때는 체크 하지 않음
  
  var checkCode = inputValue.value.charCodeAt(inputValue.value.length-1);
  
  if(v_check == 'string') {
      if(checkCode >= 48 && checkCode <= 57) {
          str = (rownum+1) + " 번째 " + headName + "는 문자만 입력하세요.\n";
      }
  }else if(v_check == 'number'){
   if(!(checkCode >= 48 && checkCode <= 57)) {
          str = (rownum+1) + " 번째 " + headName + "는 숫자만 입력하세요.\n";
      }
  }
 }else{
  if(v_check == 'null' || keyCheck == 'key') {
   str = (rownum+1) + " 번째 " + headName + "는 필수입력입니다.\n";
  }
 }
 
 return str;
}

사용 예시

function checkValidationMessage() {
    var str = '';   
    str += checkValidation("leftTable", "l_cpsn_ct", 'number', '성적', 'key');   //숫자 and 공백 체크
    str += checkValidation("leftTable", "l_rank",    'number', '순위');   //숫자인지만 체크
    str += checkValidation("leftTable", "l_name",    'string', '이름');    //한글인지만 체크
    str += checkValidation("leftTable", "l_score",    'null', '점수');       //공백만 체크
    
    if("" != str) {
     alert(str);
     return false;
    }
    return true;
   }





한글 입력 불가 

var regType1 = /^[A-Za-z0-9+]*$/;
if (!regType1.test($('#tbxid').val())) { alert('계정명에 한글은 들어가지 않습니다. 확인해 주세요.'); return false; }

출처:http://ondemand.tistory.com/183

+ Recent posts