Php 如果javascript条件为true,则重定向不起作用

Php 如果javascript条件为true,则重定向不起作用,php,javascript,html,validation,redirect,Php,Javascript,Html,Validation,Redirect,我有一个表单,我验证javascript函数中的字段。验证之后,我想重定向到另一个页面。我正在尝试以下形式: <form action="" method="post" name="form" onsubmit="return validate()"> User Name : <input type="text" name="realname" size="19"><span id="realnameerror" ></span> <br&g

我有一个表单,我验证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>
但它仍然不起作用。除了window.location之外,我还尝试了window.location.hrefdocument.location.href。我真的认为我在剧本里遗漏了一些东西。。。如果你注意到了什么,请让我想想。谢谢大家!

我试图在IF语句中添加一个警报,它出现了2秒钟,然后进行重定向。如果我不发出警报,我的重定向就不起作用。代码如下:

if (rtn) {
    window.location="http://test.dev";
    alert(rtn);
   }
将上述内容替换为

return rtn;
如果我们返回false,则不提交表格,否则提交


此外,表单将提交到“action”,因此请确保表单的“action”属性设置为“”

警告此代码中的某些内容

if (rtn)
{
  alert('you here');
  window.location="http://test.dev";
  return rtn;
}

如果警报出来,你就来了。如果不是,你的第一个条件是错误的。我们分头解决问题的地方

将表单标签的
操作设置为
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>

var hasFocus=false;
函数checkName(form)/*用于名称验证*/
{...}
功能检查电子邮件(表格)/*用于电子邮件验证*/
{...}
功能validPhone(表格)/*用于电话验证*/
{...}
函数验证()
{
hasFocus=false;
var form=document.forms['form'];
var ary=[checkName,checkEmail,validPhone];
var rtn=真;
var z0=0;

对于(var z0=0;z0请尝试jquery ajax重定向true语句 $.ajax({url:'search.php',数据:“check_qc=“+qc,async:false, 成功:函数(响应){if(响应==1){window.location=”http://google.com"; 返回false;}})


当第一个条件为真时,页面重定向到给定的url,第二个条件则不重定向。

#1了解缩进;#2控制台比我们更快更容易地发现错误,尤其是使用半可读的codeif(rtn){//window.location=“”//return rtn;}一件事是你做的var url=“”;然后是alert(url)。复制警报框中的url。粘贴到浏览器中。这样您就知道它是否有效。使用chrome developer工具调试它,使用断点可以更容易地知道您是否真的在执行该窗口。位置我在那里放置了一个警报,它会显示该警报大约2秒钟,然后将我重定向到test.dev。如果我没有放置aler不在那里,它不能重定向!我不明白
return rtn;
if (rtn)
{
  alert('you here');
  window.location="http://test.dev";
  return rtn;
}
<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>
if (rtn)
{
  alert('hello there');
  window.location="http://new/new.php";
  return true;
}else{
  return false;
}