JavaScript表单验证代码没有给出预期的结果
我在我的网站上有一个订阅表单,我正在验证。当用户点击按钮注册时,函数validate()被调用并且字段应该被验证,但是我没有得到它的工作。JavaScript表单验证代码没有给出预期的结果
显然在我的代码中有一些错误。我试图用我所拥有的一点知识来解决它,但无法让它起作用。如果你能指出我正确的方向,我会做什么错误,我将不胜感激。
代码如下:
function validate()
{
var name = document.getElementById("name").value;
var phone = document.getElementById("phone").value;
var nat = document.getElementById("nat").value;
var address = document.getElementById("address").value;
var town = document.getElementById("town").value;
var zip = document.getElementById("zip").value;
var userName = document.getElementById("userName").value;
var password = document.getElementById("password").value;
var password2= document.getElentById("password2").value;
if (name == "")
{
window.alert("Please Enter your Full Name")
}
checkNr= isNaN(phone)
if(checkNr == true)
{
window.alert("You can only enter numbers. Please try again")
}
if (nat == "")
{
window.alert("Please enter your nationality")
}
if (address == "")
{
window.alert("Please Enter your address")
}
if (password != password2)
{
window.alert("Your passwords did not match. Please re-enter")
}
}
</script>
HTML:
<form name="subscribe">
FULLNAME: </strong><input type="text" id="name"/><br />
PHONE NR: <input type="text" id="phone" onblur="validateForm()" /><br />
NATIONALITY:<input type="text" id="nat" /><br />
Address:<input type="text" id="address" /><br />
Town:<input type="text" id="town" /><br />
Zip Code: <input type="text" id="zip" /><br />
Username: <input type="text" id="userName" /><br />
Password:<input type="password" name="password" /><br />
Retype:<input type="password" name="password2" /><br />
<input type="button" value="submit" onclick="validate()" />
</form>
我发现我错了。它看起来像你不能使用带有密码输入字段的document.get
。我拿出密码,它的工作。如果我能从更多经验的人那里获得一些意见,那将是非常好的。
你可以做那。问题是“密码”不是一个id,它是一个类型。你忘了给该字段添加一个ID。 – 2013-05-05 06:09:57
此外,你有“getElen”,而不是getElement其中之一 – 2013-05-05 06:10:43
我发现在你的代码这些错误:
- 有,如果你希望你的形式发送数据在手机中输入字段
- 没有指定
validateForm()
功能,设置类型submit
,不button
您提交按钮 -
,如果你想停止提交表单当事情没有填充,勾
onsubmit
事件的形式为:<form onsubmit="return validate()"> ... // note the return keyword
和脚本
function validate() {
...
if(somethingIsWrong) return false; // false stops submitting
else return true; // do submit
}
也注意到@FranciscoAfonzo
一对夫妇的建议中提到的getElentById
错字:使用===
在JavaScript comparisions完成(等于)和
!==
(不等于)。-
如果在if循环中只有变量名也足够。 像:
if (address) { window.alert("Please enter your address") }
==是比较,===是严格比较https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Comparison_Operators – 2013-05-05 06:48:22
你可以把你的HTML代码的一部分? – polin 2013-05-05 05:45:42
我添加了HTML代码感谢您的意见和帮助 – 2013-05-05 05:53:53
@TimothyCoetzee检查这个http://jsfiddle.net/RXR7t/ – PSL 2013-05-05 06:01:24