back()在ajax成功函数之后不能工作

时间:2022-03-31 20:20:43

I want after Ajax success function I could return to the previous page.

我想在Ajax成功函数之后返回到上一个页面。

<div id="dialog" title="Complain">
       <form id="komenform">
                <label>Model :</label>
                <input type="text" id="comodel" name="comodel"/>
                <label>Komentar :</label>
                <textarea id="comment" name="comment" rows="5" cols="20" ></textarea>
                <button id="submitcom" type="button" class="ui-state-default ui-corner-all"><span>Submit </span></button>
                <input name="action" value="inputcom" type="hidden">
       </form>
</div>

$("#komenform").validate({
        rules:{
                comodel:{
                          required:true
                          },
                comment:{
                        required:true
                        }
                }
        });

$("#submitcom").click(function() {
      if($("#komenform").valid()) {
            var params=$("#komenform").serialize();
            $.ajax({
                    type:"post",
                    url:"/QA/process2.php",
                    data:params,
                    cache :false,
                    async :false,
                    success : function() {
                           $("#comodel").val("");
                           $("#comment").val("");
                           $("#dialog").dialog('close');
                           history.back();
                           },
                    error : function() {
                           alert("Data failed to input.");
                           }
                    });
            }
      });

But it won't work.

但它不会工作。


UPDATE

更新

it works after I try to remove dialog('close'):

当我尝试删除对话框(“close”)后,它就会工作:

success : function() {
       $("#comodel").val("");
       $("#comment").val("");
 //      $("#dialog").dialog('close');
       window.history.go(-1);
       return false;
       },

but, I need to double click on submit button. why?

但是,我需要双击submit按钮。为什么?

2 个解决方案

#1


2  

it works..

它的工作原理。

success : function() {
       $("#comodel").val("");
       $("#comment").val("");
 //      $("#dialog").dialog('close');
       window.history.go(-2);
       return false;
       },

just change -1 into -2.

把-1变成-2。

#2


1  

Suggestions:

建议:

  • I don't find any use of AJAX here because of async:false
  • 我在这里没有发现AJAX的任何使用,因为异步:false。
  • Call PHP page and using header redirect to your desired page
  • 调用PHP页面并使用头重定向到所需的页面
  • Debug your code by console.log once ajax call succeeds
  • 通过控制台调试代码。一旦ajax调用成功。
  • try window.history.back() instead of history.back()
  • 试试window.history.back()而不是history.back()

#1


2  

it works..

它的工作原理。

success : function() {
       $("#comodel").val("");
       $("#comment").val("");
 //      $("#dialog").dialog('close');
       window.history.go(-2);
       return false;
       },

just change -1 into -2.

把-1变成-2。

#2


1  

Suggestions:

建议:

  • I don't find any use of AJAX here because of async:false
  • 我在这里没有发现AJAX的任何使用,因为异步:false。
  • Call PHP page and using header redirect to your desired page
  • 调用PHP页面并使用头重定向到所需的页面
  • Debug your code by console.log once ajax call succeeds
  • 通过控制台调试代码。一旦ajax调用成功。
  • try window.history.back() instead of history.back()
  • 试试window.history.back()而不是history.back()