Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用户取消离开后,如何保持在同一页面而不刷新?_Javascript_Html - Fatal编程技术网

Javascript 用户取消离开后,如何保持在同一页面而不刷新?

Javascript 用户取消离开后,如何保持在同一页面而不刷新?,javascript,html,Javascript,Html,我有一个网页test.php,其中包含: 表格 “提交”按钮将答案发送至表格 一个“离开”按钮,允许用户离开页面(并转到“Leave.php”),而无需填写表单 一种控制器,当用户单击Submit时控制数据,当一切正常时重定向到别处 我希望用户在重定向之前确认他想离开。以下是我目前的代码: 功能确认(){ var result=confirm(“您真的想离开此页面吗?”); 如果(结果){ window.location='leave.php'; } 否则{ 返回FALSE; } } 您可

我有一个网页test.php,其中包含:

  • 表格

  • “提交”按钮将答案发送至表格

  • 一个“离开”按钮,允许用户离开页面(并转到“Leave.php”),而无需填写表单

  • 一种控制器,当用户单击Submit时控制数据,当一切正常时重定向到别处

我希望用户在重定向之前确认他想离开。以下是我目前的代码:

功能确认(){
var result=confirm(“您真的想离开此页面吗?”);
如果(结果){
window.location='leave.php';
}
否则{
返回FALSE;
}
}

您可以使用JavaScript提交表单。首先,将两个按钮更改为
type=“button”
。使用
type=“submit”
提交导致错误的按钮。然后编写一个简单的函数来提交表单

功能确认(){
var result=confirm(“您真的想离开此页面吗?”);
如果(结果){
window.location='leave.php';
}
否则{
返回FALSE;
}
}
函数submitForm(){
var form=document.getElementById('form');
表单提交();
}

您可以使用JavaScript提交表单。首先,将两个按钮更改为
type=“button”
。使用
type=“submit”
提交导致错误的按钮。然后编写一个简单的函数来提交表单

功能确认(){
var result=confirm(“您真的想离开此页面吗?”);
如果(结果){
window.location='leave.php';
}
否则{
返回FALSE;
}
}
函数submitForm(){
var form=document.getElementById('form');
表单提交();
}

如果您必须提交按钮,每个按钮都将提交您的表单。因此,重定向到
“test.php”
“leave.php”
之间存在冲突。在这种情况下,来自表单的操作总是第一位的

功能确认(){
var result=confirm(“您真的想离开此页面吗?”);
如果(结果){
window.location='leave.php';
}
否则{
返回FALSE;
}
}

如果您必须提交按钮,每个按钮都将提交您的表单。因此,重定向到
“test.php”
“leave.php”
之间存在冲突。在这种情况下,来自表单的操作总是第一位的

功能确认(){
var result=confirm(“您真的想离开此页面吗?”);
如果(结果){
window.location='leave.php';
}
否则{
返回FALSE;
}
}

这是一个工作版本。我认为问题在于返回语句“return confirmation()”:


功能确认(e){
var result=confirm(“您真的想离开此页面吗?”);
如果(结果){
window.location='/leave.php';
}否则{
返回FALSE;
}
}

这是一个工作版本。我认为问题在于返回语句“return confirmation()”:


功能确认(e){
var result=confirm(“您真的想离开此页面吗?”);
如果(结果){
window.location='/leave.php';
}否则{
返回FALSE;
}
}

第2页。换成2。实际上,在查看问题时,您甚至不需要提交功能(尽管它对提交前的处理很有用),只需将“离开”按钮更改为键入
按钮
即可。它就像一个符咒。非常感谢。如果可以的话,我可以问你为什么我的解决方案不起作用吗?你的按钮类型是
submit
,因此在调用
confirmation()
函数后,它会提交,但你将它设置为return
false
以刷新表单。实际上,在查看问题时,你甚至不需要提交函数(虽然这对提交前的处理很有用),只需将“离开”按钮更改为键入
按钮
Awesome。它就像一个符咒。谢谢!如果可以的话,我可以问你为什么我的解决方案不起作用吗?你的按钮是键入
提交
,所以在
确认()
函数被调用,它会提交,但您将其设置为返回
false
,因此它会刷新表单。太好了。非常感谢您的修复和解释。太好了。非常感谢您的修复和解释。
<form method="post" action="test.php">
     <input type="text" name="answer" id="answer" placeholder="Type your answer here">
     <input type="submit" name="submit_answer" value="Submit your answer">
     <input type="submit" name="leave" value="Leave this page" onClick="confirmation(); return false;">
</form>
<script>
  function confirmation(e){
      var result = confirm("Do you really want to leave this page?");
      if (result) {
        window.location = '/leave.php';
      } else {
          return FALSE;
      }
  }
</script>