我有一个表单,我验证了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);
}
if (rtn)
{
alert('hello there');
window.location="http://new/new.php";
return true;
}else{
return false;
}
当条件为真时,页面首先重定向到给定的URL,条件第二个不重定向。
提醒此代码中的某些内容
if (rtn)
{
alert('you here');
window.location="http://test.dev";
return rtn;
}
如果警报出来,你就到了这里。如果不是,你的第一个条件是错误的。我们分开在哪里有问题。
if (rtn)
{
window.location="http://test.dev";
return rtn;
}
else return rtn;
将上述内容替换为
return rtn;
如果我们返回虚假,则表格不会提交,否则提交。
此外,表单将提交到"操作",因此请确保表单的"操作"属性设置为"http://test.dev">
将表单标签的action
设置为http://test.dev
。就这样。
编辑:你从来没有想过表单数据可能不会发布到http://test.dev
如果你使用window.location.href
?
这是怎么做到的?
<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>
尝试 jquery ajax 重定向 true 语句$.ajax({url: 'search.php',data: "check_qc=" + qc,async:false,成功: 函数(响应( {if(响应==1({window.location="http://google.com";返回假;}}}(;