전화 번호 입력시 숫자 0이 입력 안됨
본문
이용자로 부터 전화번호만 입력을 받는 칸인데요. 1 ~ 9 까지는 잘 입력이 되는에 0 만 입력이 안됩니다.
<input type='text' name='htel2' id="tel2" size='4' maxlength='4' class='txt' onKeydown='javascript:handlerNum(this)' required /> <label for="tel2"> - </label>
<input type='text' name='htel3' id="tel3" size='4' maxlength='4' class='txt' onKeydown='javascript:handlerNum(this)' required /><label for="tel3">- </label>
input 에서 text 숫자를 입력 받습니다. javascript - handlerNum(this) 에서 입력 되는게 숫자 인지 아닌지를 판단합니다.
function handlerNum(obj) {
e = window.event; //윈도우의 event 잡기
//입력 허용 키
if( ( e.keyCode >= 48 && e.keyCode <= 57 ) || //숫자열 0 ~ 9 : 48 ~ 57
( e.keyCode >= 96 && e.keyCode <= 105 ) || //키패드 0 ~ 9 : 96 ~ 105
e.keyCode == 8 || //BackSpace
e.keyCode == 46 || //Delete
//e.keyCode == 110 || //소수점(.) : 문자키배열
//e.keyCode == 190 || //소수점(.) : 키패드
e.keyCode == 37 || //좌 화살표
e.keyCode == 39 || //우 화살표
e.keyCode == 35 || //End 키
e.keyCode == 36 || //Home 키
e.keyCode == 9 //Tab 키
) {
if(e.keyCode == 48 || e.keyCode == 96) { //0을 눌렀을경우
if ( obj.value == "" || obj.value == '0' ) //아무것도 없거나 현재 값이 0일 경우에서 0을 눌렀을경우
e.returnValue=false; //-->입력되지않는다.
else //다른숫자뒤에오는 0은
return; //-->입력시킨다.
}
else //0이 아닌숫자
return; //-->입력시킨다.
}
else //숫자가 아니면 넣을수 없다.
{
alert('숫자만 입력가능합니다.!');
e.returnValue=false;
}
}
인터넷에 비슷한 코드가 있어서 봐꿔서 해보았는데요 안되네요. ㅜㅜ
뭐가 문제인가요?
답변 1
if ( obj.value == "" || obj.value == '0' ) //아무것도 없거나 현재 값이 0일 경우에서 0을 눌렀을경우
e.returnValue=false; //-->입력되지않는다.
이부분 때문이네요