在函数完成之前阻止脚本执行

时间:2016-06-20 11:00:41

标签: ajax wait .post

我添加了输入类型="文字"动态:

elements.prepend('<input type="text" class="data form-control searchText" placeholder="'+lang(452)+'" />');

在占位符中,调用函数&#34; lang()&#34;从我们的数据库中获取每种语言的正确占位符:

function lang(id){
    $.post('gallery.php',{lang:id}).done(function(data){return data});
}

现在占位符始终显示&#34; undefined&#34;因为在$ .post获得ReadyState 4之前,脚本似乎已经完成了。

有人知道如何实现这一目标吗? 或者有更好的想法?

谢谢

1 个答案:

答案 0 :(得分:0)

通过使用$ .ajax函数并将async设置为false来发现它的工作原理:

function lang(id){
    txt = '';
    $.ajax({url:'gallery.php', type:"POST", async:false, data:{lang:id}}).success(function(data){txt = data});
    return txt;
}

注意: async仅在url指向本地脚本时才有效。