gpt4 book ai didi

jquery - ajax表单发送通知jquery

转载 作者:行者123 更新时间:2023-12-01 05:53:31 25 4
gpt4 key购买 nike

我有一个通过 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();
}
});

这个不起作用:

  1. 无论出于何种原因,“已发送”都会在发送之前出现。为什么?
  2. remove() 函数在通知创建之前将其删除,但并未完全删除,可以看到“正在发送”的通知下移了。如何才能完全删除该通知?
  3. 我真的需要将“发送”调用包装在函数内,只是因为 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)
}
});

这似乎有效,但由于上述问题,并不真正令人满意

最佳答案

下面的方法更容易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(); }
);

关于jquery - ajax表单发送通知jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18768199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com