我有一个页面可以验证一些基本的表单信息。用户输入信息后,如果验证没有问题,则应打开一个新窗口。如果表单字段存在问题,则应提示用户修复错误,并且不应打开窗口。现在我已经尝试为此编写代码,但我遇到的问题是无论表单是否有问题,我的窗口都会打开。只有在表单没有问题时才能打开窗口。
如果有人能够指出我能够做些什么来解决这个小问题,那将非常感激。
代码如下:
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;
if (name == "" )
{
window.alert("Please Enter your Full Name");
}
checkNr= isNaN(phone)
if(checkNr == true)
{
window.alert("PHONE NUMBER: You can only enter numbers. Please try again");
}
else if (phone == "")
{
window.alert("please enter your phone number") ;
}
if (nat == "")
{
window.alert("Please enter your nationality")
}
if(town =="")
{
window.alert("Please enter your town")
}
if(zip=="")
{
window.alert("Please enter your zip code")
}
if (userName=="")
{
window.alert("Please enter your username")
}
}
</script>
HTML
<form name="subscribe" action="mailto:" >
FULLNAME: </strong><input type="text" id="name"/><br />
PHONE NR: <input type="text" id="phone" /><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 />
Date Of lesson:<input type="text" id="dOl" value="dd/mm/yy" />
<input type="button" value="submit" onclick="validate(), openWindow()" />
</form>
答案 0 :(得分:2)
现在,validate
和openWindow
按顺序写入,无论结果如何都会执行。
你能做的就是这样。
function validate() {
//If the validation fails, return false, else return true.
}
将您的onClick
属性更改为
onclick="if(validate()) openWindow();"
现在,如果验证成功完成,将打开一个新窗口。如果没有,没有bueno。
答案 1 :(得分:1)
在HTML中
<input type="button" value="submit" onclick="validate(), openWindow()" />
说调用validate
函数并一个接一个地调用openWindow
函数。因此,无论验证状态如何,窗口都将打开。
我建议根据验证状态在函数openWindow
中调用函数validate
。
HTML将为<input type="button" value="submit" onclick="validate()" />
脚本将是
function validate () {
// do the necessary stuff here
if (!hasErrors) {
openWindow();
}
}