14

单击提交按钮后如何重定向用户?我的 javascript 不工作:

Javascript

<script type="text/javascript" language="javascript">
function redirect()
{
    window.location.href="login.php";
}
</script>

表单页面

<form  name="form1" id="form1" method="post">  
    <input type="submit" class="button4" name="order" 
        id="order" value="Place Order" onclick="redirect();" >
</form>
4

7 回答 7

20

您的提交将取消重定向,反之亦然。

我首先看不到重定向的原因,因为您为什么有一个什么都不做的订单。

也就是说,这是如何做到的。首先永远不要在提交按钮上放代码,而是在 onsubmit 中做,其次返回 false 以停止提交

注意此代码将忽略该操作并仅执行脚本,因为返回 false/preventDefault

function redirect() {
  window.location.replace("login.php");
  return false;
}

使用

<form name="form1" id="form1" method="post" onsubmit="return redirect()">  
  <input type="submit" class="button4" name="order" id="order" value="Place Order" >
</form>

或不显眼:

window.onload=function() {
  document.getElementById("form1").onsubmit=function() {
    window.location.replace("login.php");
    return false;
  }
}

使用

<form id="form1" method="post">  
  <input type="submit" class="button4" value="Place Order" >
</form>

jQuery:

$("#form1").on("submit",function(e) {
   e.preventDefault(); // cancel submission
   window.location.replace("login.php");
});

-----

例子:

$("#form1").on("submit", function(e) {
  e.preventDefault(); // cancel submission
  alert("this could redirect to login.php"); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>


<form id="form1" method="post" action="javascript:alert('Action!!!')">
  <input type="submit" class="button4" value="Place Order">
</form>

于 2013-03-05T09:44:36.237 回答
4

使用 jquery 你可以这样做

$("#order").click(function(e){
    e.preventDefault();
    window.location="login.php";
});

同样在 HMTL 中,您可以这样做

<form name="frm" action="login.php" method="POST">
...
</form>

希望这可以帮助

于 2013-03-05T09:39:34.657 回答
3

利用

window.location.replace("login.php");

或者simply window.location("login.php");

它比使用更好,window.location.href =,因为replace()它不会将原始页面放入会话历史记录中,这意味着用户不会陷入永无止境的后退按钮惨败中。如果要模拟某人单击链接,请使用location.href. 如果要模拟 HTTP 重定向,请使用location.replace.

于 2013-03-05T09:38:25.237 回答
2

你为什么不使用纯html?

<form action="login.php" method="post" name="form1" id="form1">
...
</form>

在您的 login.php 中,您可以使用header()函数。

header("Location: welcome.php");
于 2013-03-05T09:39:05.367 回答
0

这将是

window.location="login.php";
于 2013-03-05T09:38:47.583 回答
0

我希望这可能会有所帮助

<script type="text/javascript">
	function redirect() {
		document.getElementById("formid").submit();
	}
	window.onload = redirect;
</script>
<form id="formid" method="post" action="anypage.jsp">
  .........
</form>

于 2015-11-29T04:41:10.417 回答
-1
// similar behavior as an HTTP redirect
window.location.replace("http://stackoverflow.com/SpecificAction.php");

// similar behavior as clicking on a link
window.location.href = "http://stackoverflow.com/SpecificAction.php";
于 2013-03-05T09:39:44.287 回答