使用JavaScript验证电话号码
问题描述:
我有一个包含三个元素的表单。我想在用户输入时验证电话号码。如果用户移动到下一个元素并且电话号码包含和不是数字的字符,我想显示一个警告框。使用JavaScript验证电话号码
我写了一些代码,但完全难住。我在使用我的功能时遇到的问题是,即使我只在电话号码元素中输入数字,我仍然会显示警告框。我的代码如下所示:
<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>
非常感谢您提供的所有答案和帮助。
答
变化
document.forms[0].elements[1]
到
document.forms[0].elements[1].value
您在测试元素本身,而不是元素的值。
顺便说一句,如果有人进入一个破折号或括号中的电话号码(例如,(555)123-4567),你能指望什么发生?
+1
非常感谢您的回答。它效果很好。说实话,我没有想过如果有人投入破折号会发生什么。通过阅读一些回复,我可以看到有些模式需要使用。不幸的是我不明白代码... – 2013-05-02 14:25:41
答
答
Here你会发现很多为例,以实现自己的目标:
例如,如果您只能使用号码:
function phonenumber(inputtxt)
{
var phoneno = /^\d{10}$/;
if((inputtxt.value.match(phoneno))
{
return true;
}
else
{
alert("message");
return false;
}
}
试着提醒'document.forms [0] .elements [1]'本身看看这个价值是否是你期望的。 – ajp15243 2013-05-02 14:08:18