我有一个表单,我通过jquery ajax发送。我想要实现的是: 在发送表单之前,应该有一个“发送”通知,在请求完成后,此消息应该消失,并且应该有一条消息“已发送”。我正在使用pnotify。 我到目前为止尝试的是:
inProcess = function(){
m = $.pnotify({
title: "sending"
});
return true;
}
event.preventDefault();
$.ajax('',{
method: "POST",
data: myform.serialize,
beforeSend: inProcess,
complete: function(response){
$.pnotify({
title: "Sent",
type: "success",
opacity: "0.8",
delay: 5000
});
m.remove();
}
});
这个不起作用:
beforeSend
需要true
作为返回码?还是有更优雅的方式?特别是我不喜欢全球m
变量修改:
根据一些评论和一些谷歌的说法,我将我的代码更改为:
inProcess = function(){
m = $.pnotify({
title: "sending"
});
return true;
}
event.preventDefault();
$.ajax('',{
method: "POST",
data: myform.serialize,
beforeSend: inProcess,
complete: setTimeout(function(response){
$.pnotify({
title: "Sent",
type: "success",
opacity: "0.8",
delay: 5000
});
$.pnotify_remove_all(),1000)
}
});
由于上述问题,这似乎有效,但并不令人满意
答案 0 :(得分:0)
以下方式更容易4我。 可以提供帮助:
inProcess();
$.post(
'file.php',
{
data: myform.serialize
},
function(response)
{
success(response);
$.pnotify({
title: "Sent",
type: "success",
opacity: "0.8",
delay: 5000
});
},'json'
)
.always(function() { m.remove(); }
);