【发布时间】:2010-08-16 12:42:56
【问题描述】:
我正在尝试通过 AJAX 提交表单并在提交表单后阻止重定向。我不明白我为什么会遇到这个问题,因为我将 autoRender 设置为 false。
控制器代码
function add() {
$this->autoRender = false;
if (!empty($this->data)) {
$this->data['Comment']['user_id'] = $this->Auth->user('id');
$this->Comment->create();
if ($this->Comment->save($this->data)) {
}
}
}
JS 事件处理程序
$(".submit_comment").live("submit",commentSubmitHandler);
function commentSubmitHandler(event){
$.ajax({
type: "post",
url: $("#webroot").val() + "comments/add",
data: data,
dataType: "json",
success: function(data){
alert("win");
},
error: function(data){
alert("fail");
}
});
return false;
}
表单数据已提交并保存得很好,但它为什么离开页面?此外,它似乎在完成 js 之前就已经这样做了,因为警报实际上从未发生过。因此,控制器操作“add”有一个明确的直接重定向。
【问题讨论】: