我有一个包含三个元素的表单。我想在用户输入时验证电话号码。如果用户移动到下一个元素并且电话号码包含并且字符不是数字我想显示警告框。
我写了一些代码,但完全被难倒了。我的功能问题是,即使我只在电话号码元素中输入数字,我仍然会显示警告框。我的代码如下所示:
<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 :(得分:4)
更改
document.forms[0].elements[1]
到
document.forms[0].elements[1].value
您正在测试元素本身,而不是元素的值。
<强> jsFiddle example 强>
顺便说一句,如果有人输入带短划线或括号的电话号码(例如(555)123-4567),您期望发生什么?答案 1 :(得分:1)
Here你会发现很多例子来实现你的目标:
例如,如果您只能使用数字:
function phonenumber(inputtxt)
{
var phoneno = /^\d{10}$/;
if((inputtxt.value.match(phoneno))
{
return true;
}
else
{
alert("message");
return false;
}
}
答案 2 :(得分:0)