我希望在完成Ajax调用后显示成功消息。 我试着做以下事情:
$("form.stock").submit(function(){
$.post('/ajax/transactionupdate', params, function(data) {
$this.append("success");
}
});
问题是在回调函数中,似乎$(this)是未知的(不是实例的一部分)。
所以我尝试使用ajaxComplete / ajaxSuccess,但由于某些原因,一旦ajax完成,它们甚至都没有启动:
$(this).ajaxComplete(function() {
alert("STOP");
});
然而,ajaxStart似乎确实有效:
$(this).ajaxStart(function() {
alert("START");
});
有人能注意到这个问题吗?
谢谢! 乔尔
答案 0 :(得分:0)
$("form.stock").submit(function(e){
e.preventDefault()
var el = this;
$.post('/ajax/transactionupdate', params, function(data) {
$(el).append("success");
}
});
上下文是window
,因为XMLHttpRequest
方法由窗口拥有,内部由$.post
调用。
答案 1 :(得分:0)
首先,最初的例子可以像这样重新完成:
$("form.stock").submit(function() {
var stockForm = $(this);
$.post('/ajax/transactionupdate', params, function(data) {
stockForm.append("success");
});
return false;
});
您应该从“提交”处理程序返回false
,以防止“本机”表单提交发生。