input 숫자만 입력하고 싶습니다.
본문
<script>
function inputPhoneNumber(obj) {
var number = obj.value.replace(/[^0-9]/g, "");
var phone = "";
if(number.length < 4) {
return number;
} else if(number.length < 7) {
phone += number.substr(0, 3);
phone += "-";
phone += number.substr(3);
} else if(number.length < 11) {
phone += number.substr(0, 3);
phone += "-";
phone += number.substr(3, 3);
phone += "-";
phone += number.substr(6);
} else {
phone += number.substr(0, 3);
phone += "-";
phone += number.substr(3, 4);
phone += "-";
phone += number.substr(7);
}
obj.value = phone;
}
</script>
====================================================
<input type="text" name="mb_hp" onKeyup="inputPhoneNumber(this);" value="<?php echo get_text($member['mb_hp']) ?>" id="reg_mb_hp" <?php echo ($config['cf_req_hp'])?"required":""; ?> class="form-control input-sm" maxlength="20">
핸드폰 입력시 000-0000-0000 으로 되게끔 하였습니다.
여기다가 추가로 한글은 입력 안되도록 하고 싶은데 어떻게 해야할지 SOS 부탁드립니다.ㅠ
답변 3
<input type="text" placeholder="숫자만 입력" onkeydown='return onlyNumber(event)' onkeyup='removeChar(event)'>
<script>
/* 숫자만 입력받습니다. */
function onlyNumber(event){
event = event || window.event;
var keyID = (event.which) ? event.which : event.keyCode;
console.log(keyID);
if ( (keyID >= 48 && keyID <= 57) || (keyID >= 96 && keyID <= 105) || keyID == 8 || keyID == 9 || keyID == 46 || keyID == 37 || keyID == 39 )
return;
else
return false;
}
function removeChar(event) {
event = event || window.event;
var keyID = (event.which) ? event.which : event.keyCode;
if ( keyID == 8 || keyID == 9 || keyID == 46 || keyID == 37 || keyID == 39 )
return;
else
event.target.value = event.target.value.replace(/[^0-9]/g, "");
}
</script>
숫자만 체크를 위해서는 input을 3개로 분리해서 type number로 처리해서 자동으로 - 가 붙게끔 적용해 주시면 되지 않을까 싶습니다.