如何获得的数据进行JQuery.post功能
的我在JS一种新的,但我无法相信我已经无法想出解决办法...如何获得的数据进行JQuery.post功能
是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.
在我看来,这是一个变量范围的问题,但我看不出...
编辑: 我下面贴这个,但不知道如何删除它... 我现在明白这个帖子是异步完成的。这是有道理的。没有意义的是,按照您看到的顺序弹出警报。我希望最后一次警报(空白的一个)先出现。它不是。它最后出现。
我希望post函数内的警报最后出现。任何人都可以解释吗?
回答:
您neesd使用jQuery.ajax
,你需要设置async :false
,因为你的$。员额是一个异步请求,之后异步请求不等待异步函数完成的功能。这就是为什么您的警报无需打印,因为它在$ .post完成之前执行。所以你需要做的要求同步,那么你的函数执行后,警报将运行
myerr=""; $.ajax({
url: "/rpc/validate_song_entry",
type: "POST",
data: {'title':$('#title').val()},
async:false,
success: function(data){
myerr=data.title;
}
}
);
alert(myerr);
回答:
这是因为后完成异步。您必须为您的问题使用$ .ajax,并将其设置为异步。
//编辑:也看看是:$。员额(...),因为它是异步完成后执行内部Using $.post within a javascript function, cannot assign value to a variable?
回答:
功能。你的警报(myerr)在myerr被设置之前马上执行。
以上是 如何获得的数据进行JQuery.post功能 的全部内容, 来源链接: utcz.com/qa/259766.html