我正在构建一个django项目,这是一个网站将表单发送到服务器,服务器使用表单刚刚注册的查询集和消息字符串“创建新事件成功”进行响应。
这是它的代码:
是另一个javascript函数,它将服务器刚刚收到的查询集显示为“侧边栏”div。之后,by 将消息追加到结果上方。listeventdocument.getElementById("sidebar").insertAdjacentHTML( 'afterbegin', "Create new event successful." );
脚本
function makeEvent(event){
event.preventDefault();
var year = event.target.childNodes[3].children[0].value.slice(0,4);
var month = event.target.childNodes[3].children[0].value.slice(5,7);
var day = event.target.childNodes[3].children[0].value.slice(8,10);
var form = $("#makeEventForm");
$.ajax({
type: form.attr('method'),
url: form.attr('action'),
data: form.serialize(),
success: function(response){
console.log(response);
listevent(year, month, day);
document.getElementById("sidebar").insertAdjacentHTML( 'afterbegin', "Create new event successful." );
},
error: function(request,status,error){
if (request.status == 599) {
listevent(year, month, day);
document.getElementById("sidebar").insertAdjacentHTML( 'afterbegin', "Error : time overlaps with another event" );
} else {
alert("code:"+request.status+"\n"+"message:"+status+"\n"+"error:"+error);
}
},
});
}
问题是,当这个函数运行并且ajax操作成功完成时,成功函数()的第二行似乎比第三行晚运行。因此,不会显示“成功创建新事件”,因为函数会覆盖 div 中的所有内容。makeEventlistevent(year, month, day);listeventsidebar
所以我尝试在第三行上使用,但似乎一直都不起作用。如果我将时间值设置得足够大,它就会起作用,但它看起来很糟糕。setTimeout
所以,我的问题是:
1.成功函数的第二行看起来比第三行晚运行,对吗?
2. 如果是这样,到第三线运行后第二行结束运行,我该怎么办?
桃花长相依
HUH函数
相关分类