history.back()在ajax成功函数之后无法正常工作

时间:2013-08-15 09:53:53

标签: jquery ajax double-click

我想在Ajax success function之后回到上一页。

<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.");
                           }
                    });
            }
      });

但它不起作用。


更新

在我尝试删除dialog('close')之后,它有效:

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

但是,我需要双击提交按钮。为什么呢?

2 个答案:

答案 0 :(得分:2)

它有效..

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

只需将-1更改为-2

答案 1 :(得分:1)

建议:

  • 由于async:false
  • ,我在这里找不到任何AJAX用法
  • 调用PHP页面并使用标题重定向到您想要的页面
  • ajax调用成功后,通过console.log调试代码
  • 尝试使用window.history.back()而不是history.back()