window.location.replace()和window.location在jQuery代码中不起作用

时间:2019-01-28 08:50:49

标签: php jquery redirect

我试图在其中一个程序中重定向,但失败了。我尝试制作一个简单的程序,单击“提交”按钮后,该程序应重定向到另一页。我肯定犯了一些非常根本的错误,但无法弄清楚。

我有一个简单的页面,其中使用输入框和提交按钮创建表单。单击该按钮时,将调用一个jquery,将其重定向到另一个页面。

<!DOCTYPE html>
<html lang="en">
<head>

</head>
<body>
 <h1>Testing Redirection in Jquery</h1>

 <form method="POST" id="redirectForm" name="redirectForm">
  <input type="text" id="extraField" name="extraField"/><br/><br/>
  <input type="submit" value="Submit" id="btnSubmit" name="btnSubmit" />
 </form>
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"> 
 </script>
 <script>
  $(document).ready(function () {
   $("#btnSubmit").click(function (e) {
     alert("Start");
     var extraField = document.getElementById("extraField").value;
     try { 
       window.location.replace("page2.php"); 
       console.log("Successful");
     } 
     catch(e) { 
       window.location = "page2.php";
       console.log("Failed");                   
     }
    });
   });
 </script>
</body>
</html>

它只是未能重定向到page2.php,而是保留在同一页面上。我也把console.log放了成功一秒钟,然后消失了。它没有显示错误。

请帮助我找出问题所在。

1 个答案:

答案 0 :(得分:1)

您编写代码执行2个单独的调用。     1)提交     2)OnClick

您的“提交呼叫”在此处执行1。 如果要继续使用重定向概念,则必须使用type =“ button”而不是type =“ submit”。

这就是为什么您的呼叫在同一页面上重定向,并且看起来代码无法正常工作