0 variables jquery post scope function
我是JS的新手,但我无法相信我无法弄明白......
myerr是全球定义的.我将myerr =设置为帖子的返回值.一旦我离开了这个功能,就会失去它的价值.
myerr="";
$.post("/rpc/validate_song_entry", {'title':$('#title').val()}, function(data){
alert(data.title); //----> Alerts expected result.
myerr=data.title;
alert(myerr); //-----> Alerts expected result.
}, "json");
alert(myerr); //-------> Nothing. Blank dialog.
Run Code Online (Sandbox Code Playgroud)
在我看来,这是一个可变范围的问题,但我看不出如何......
编辑:我在下面发布了这个,但不知道如何删除它...我现在明白这篇文章是异步完成的.这是有道理的.没有意义的是,警报按您看到的顺序弹出.我希望最后一个警报(空白警报)首先出现.它不是.它出现在最后.
我希望post函数内的警报最后出现.有谁能解释一下?
你jQuery.ajax 需要使用,你需要设置async :false
因为$ .post是异步请求,异步请求后的函数不等待异步函数完成.这就是为什么你的警报打印没有任何东西,因为它在$ .post完成之前执行.因此,您需要使请求同步,然后在您的函数执行后,将运行警报
myerr="";
$.ajax({
url: "/rpc/validate_song_entry",
type: "POST",
data: {'title':$('#title').val()},
async:false,
success: function(data){
myerr=data.title;
}
}
);
alert(myerr);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2196 次 |
| 最近记录: |