如果验证没有问题,请打开新窗口

时间:2013-05-06 02:48:52

标签: javascript html

我有一个页面可以验证一些基本的表单信息。用户输入信息后,如果验证没有问题,则应打开一个新窗口。如果表单字段存在问题,则应提示用户修复错误,并且不应打开窗口。现在我已经尝试为此编写代码,但我遇到的问题是无论表单是否有问题,我的窗口都会打开。只有在表单没有问题时才能打开窗口。

如果有人能够指出我能够做些什么来解决这个小问题,那将非常感激。

代码如下:

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>

2 个答案:

答案 0 :(得分:2)

现在,validateopenWindow按顺序写入,无论结果如何都会执行。

你能做的就是这样。

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();
  }
}