我有一个表单,我验证了 javascript 函数中的字段。验证后,我想重定向到另一个页面。我正在尝试这个表格:
<form action="" method="post" name="form" onsubmit="return validate()">
User Name : <input type="text" name="realname" size="19"><span id="realnameerror" ></span>
<br>
E-Mail : <input type="text" name="email" size="25"><span id="emailerror" ></span>
<br>
PhoneNo : <input type="phoneno" name="phoneno" maxlength="10" size="25"><span id="phonenoerror" ></span>
<br>
<input type="submit" value="Submit">
</form>
这是验证代码:
<script type="text/javascript">
var hasFocus = false;
function checkName(form) /* for name validation */
{...}
function checkEmail(form) /* for email validation */
{...}
function validPhone(form) /* for phone validation */
{...}
function validate()
{
hasFocus = false;
var form = document.forms['form'];
var ary=[checkName,checkEmail,validPhone];
var rtn=true;
var z0=0;
for (var z0=0;z0<ary.length;z0++)
{
if (!ary[z0](form))
{
rtn=false;
}
}
if (rtn)
{
window.location="http://test.dev";
return rtn;
}
else return rtn;
}
</script>
关键是所有 javascript 函数都正常工作,如果有任何错误消息,我会收到错误消息,但它不会使我的重定向。奇怪的是,如果我将重定向放入另一个脚本,并且不进行验证,它就可以工作。我不知道我做错了什么。我试图将我的重定向放到另一个函数中,然后像这样调用它:
if (rtn) { Redirect(); }
但它仍然不起作用。而不是window.location我还尝试了window.location.href和document.location.href。我真的认为我在剧本中遗漏了一些东西......如果你注意到了什么,请让我弄清楚。谢谢!
我试图在我的 IF 语句中放置一个警报,它出现了 2 秒钟,然后它进行了重定向。如果我不发出警报,我的重定向将不起作用。这是代码:
if (rtn) {
window.location="http://test.dev";
alert(rtn);
}