如何在提交按钮单击后重定向用户?

10 javascript

如何在提交按钮单击后重定向用户?我的javascript无效:

使用Javascript

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

表单页面

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

mpl*_*jan 18

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

我没有看到重定向的原因,因为为什么你有一个什么都不做的订单.

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

注意此代码将忽略操作,并且由于返回false/preventDefault而仅执行脚本

function redirect() {
  window.location.replace("login.php");
  return false;
}
Run Code Online (Sandbox Code Playgroud)

运用

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

或者不引人注意地:

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

运用

<form id="form1" method="post">  
  <input type="submit" class="button4" value="Place Order" >
</form>
Run Code Online (Sandbox Code Playgroud)

jQuery的:

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

-----

例:

$("#form1").on("submit", function(e) {
  e.preventDefault(); // cancel submission
  alert("this could redirect to login.php"); 
});
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)


mas*_*iny 3

使用

window.location.replace("login.php");
Run Code Online (Sandbox Code Playgroud)

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

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