【发布时间】:2013-08-16 14:26:27
【问题描述】:
我想在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;
},
但是,我需要双击提交按钮。为什么?
【问题讨论】:
-
这听起来可能很傻,但您并没有在那里执行异步请求。那么为什么要使用 AJAX 呢?将表单提交到 PHP 页面然后使用
header()不是更好吗? -
它应该工作,除非 history.back() 没有找到任何可返回的内容(即,没有上一页或上一页与当前页面)。究竟会发生什么?您是否尝试过
console.log()在您的成功职能部门内的一些事情? -
您是否使用后退按钮来保留上一页中保存的某些信息,例如输入字段?如果是这样,您可能需要考虑另一种保留数据的方法,例如 cookie 或 URL 变量。如果您在提交表单时试图阻止页面更改,请在您的
.click(function(){末尾添加return false; -
直到
dialog('close')才有效。我只是想使用 Ajax 可能有人可以给我一些建议。 -
你试过了吗:
history.go(-1),虽然它们本质上是一样的。
标签: jquery ajax double-click