我在我的网站上有一个订阅表单,我正在尝试验证。当用户单击按钮注册时,函数validate()被调用,字段应该被验证,但是我没有让它工作。
显然我的代码中存在一些错误。我试图用我所掌握的一点点知识解决它,但是无法让它发挥作用。如果你能指出我正在做错的方向,我将非常感激。
代码如下:
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>
答案 0 :(得分:1)
我在你的代码中发现了这些错误:
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
错误
答案 1 :(得分:0)
我发现了自己的错误。看起来您不能将document.get
与密码输入字段一起使用。我拿出了密码而且工作正常。如果我能从更多经验中得到一些意见,那就太棒了。
答案 2 :(得分:0)
一些建议:
在JavaScript中,使用===
(等于)和!==
(不等于)进行比较。
如果if循环中只有变量名,那也就足够了。 像:
if (address)
{
window.alert("Please enter your address")
}