我有一个表单,我在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.href 和 document.location.href ,而不是 window.location 。我真的觉得我在剧本里面遗漏了一些东西......如果你发现了什么,请让我搞清楚。谢谢!
我已尝试在内部提出警告并发出2秒钟,然后再进行重定向。如果我不提出警告,我的重定向不起作用。这是代码:
if (rtn) {
window.location="http://test.dev";
alert(rtn);
}
答案 0 :(得分:1)
if (rtn)
{
alert('hello there');
window.location="http://new/new.php";
return true;
}else{
return false;
}
当真实条件第一次然后页面重定向到给定URL并且条件第二次不重定向。
答案 1 :(得分:0)
if (rtn)
{
window.location="http://test.dev";
return rtn;
}
else return rtn;
用
替换上面的内容return rtn;
如果我们返回false,则表单不会提交,否则提交。
此外,表单会提交到“操作”,因此请确保您的表单“操作”属性设置为“http://test.dev”
答案 2 :(得分:0)
提醒此代码中的内容
if (rtn)
{
alert('you here');
window.location="http://test.dev";
return rtn;
}
如果警报出来,你就到了这里。如果没有,你的第一个条件是错误的。我们分开哪里有问题。
答案 3 :(得分:0)
将表单标记的action
设置为http://test.dev
。就是这样。
修改:如果您使用http://test.dev
,您从未想过表单数据可能无法发布到window.location.href
吗?
答案 4 :(得分:0)
怎么做?
<form action="http://test.dev" method="post" name="form" onsubmit="return validate()">
<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)
{
return rtn;
}
else return rtn;
}
</script>
答案 5 :(得分:0)
尝试使用jquery ajax重定向true语句 $ .ajax({url:'search.php',data:“check_qc =”+ qc,async:false, success:function(response){if(response == 1){window.location =“http://google.com”; return false;}}});