2013-05-02 2 views
0

3 가지 요소가있는 양식이 있습니다. 사용자가 전화 번호를 입력 할 때 전화 번호를 확인하고 싶습니다. 사용자가 다음 요소로 이동하고 전화 번호에 숫자가 아닌 문자가 포함 된 경우 alertbox를 표시하려고합니다.자바 스크립트로 전화 번호 확인

일부 코드를 작성했지만 완전히 엉망입니다. 필자의 기능과 관련하여 문제는 전화 번호 요소에 숫자 만 입력해도 경고 상자가 계속 표시된다는 것입니다. 내 코드는 다음과 같습니다.

<script type="text/javascript"> 
function validateForm() 
{ 
checkNr= isNaN(document.forms[0].elements[1]) 
if(checkNr == true) 
{ 
window.alert("You can only enter numbers. Please try again") 
} 
} 
</script> 

<form> 
    <strong>FULLNAME: </strong><input type="text"/id="name"><br /> 
    <strong>PHONE NR: </strong><input type="text" id="phone" onblur="validateForm()" /> 
    <strong>NATIONALITY</strong><input type="text" id="nat" /><br /> 
    <input type="button" id="subButton" onclick="calc()" value="Submit" /> 
</form> 

미리 답변 해 주셔서 감사합니다.

+0

하는 경우 - document.forms'경고 시도를 [0] .elements [1]'그 자체 그 값이 당신이 기대하는 값인지 확인하십시오. – ajp15243

답변

4

변경

document.forms[0].elements[1] 

당신은 요소 자체가 아닌 요소의 값을 테스트했다

document.forms[0].elements[1].value 

합니다. 누군가가 대시 또는 괄호와 전화 번호를 입력하면

jsFiddle example

BTW, (예를 들어, (555) 123-4567) 당신은 무엇을 어떻게 예상합니까?

+1

대단히 진심으로 감사드립니다. 그것은 훌륭하게 작동했습니다. 솔직하게 말해서, 누군가 대시를 걸면 어떤 일이 일어날 지 생각하지 못했습니다. 일부 응답을 읽음으로써 일부 패턴을 사용해야 함을 알 수 있습니다. 불행히도 나는 코드를 이해하지 못한다 ... –

1

Here 당신이 당신의 목표를 달성하기 위해 많은 exemple를 찾을 수 :

예를 들어, 당신은 단지 번호를 사용할 수있는 경우 :

function phonenumber(inputtxt) 
{ 
    var phoneno = /^\d{10}$/; 
    if((inputtxt.value.match(phoneno)) 
     { 
     return true; 
     } 
     else 
     { 
     alert("message"); 
     return false; 
     } 
}