0

我有一个表单,我验证了 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.hrefdocument.location.href。我真的认为我在剧本中遗漏了一些东西......如果你注意到了什么,请让我弄清楚。谢谢!

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

if (rtn) {
    window.location="http://test.dev";
    alert(rtn);
   }
4

6 回答 6

1
if (rtn)
{
  alert('hello there');
  window.location="http://new/new.php";
  return true;
}else{
  return false;
}

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

于 2014-02-03T06:57:35.213 回答
0
 if (rtn)
   {
      window.location="http://test.dev";
      return rtn;
   }
  else return rtn;

将以上内容替换为

return rtn;

如果我们返回 false,则表单不提交,否则提交。

此外,表单将提交给“action”,因此请确保表单的“action”属性设置为“ http://test.dev

于 2013-06-21T09:24:58.550 回答
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"; 返回 false;}}});

于 2014-02-03T06:19:52.760 回答
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>
于 2013-06-21T10:18:14.110 回答
0

将表单标签设置action为 。仅http://test.dev此而已。

编辑:你从来没有想过http://test.dev如果你使用了表单数据可能不会被发布到window.location.href

于 2013-06-21T09:30:33.267 回答
0

警告此代码中的某些内容

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

如果警报出来,你就到了。如果不是,你的第一个条件是错误的。我们分出哪里有问题。

于 2013-06-21T09:28:57.093 回答