jquery - 变量分配在函数中不起作用(Ajax、JS)

标签 jquery ajax asynchronous

我不明白为什么变量“s_return”不起作用

$('.codeinput').change(function() {
var s_return="";        
var to_check=this.value ;

        $.ajax({
  type: "POST",
  url: "check.php",
  data: "code="+to_check}).done(function( msg ) {
    s_return=msg; // msg - variable work fine

});

// here variable "s_return" is unset
this.value=s_return;
});

我将不胜感激任何帮助。

最佳答案

s_return=msg;

位于异步函数内。当服务器响应时,它将被设置。

this.value=s_return;

在请求被触发后立即运行。因此 s_return 尚未设置。

您需要这样做:

$('.codeinput').change(function() {
    var that = this;
    var s_return="";        
    var to_check=this.value ;

    $.ajax({

      type: "POST",
      url: "check.php",
      data: "code="+to_check

    }).done(function( msg ) {
        that.value=msg;
    });

});

关于jquery - 变量分配在函数中不起作用(Ajax、JS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10020280/

相关文章:

javascript - 在返回另一个函数的回调后调用一个函数

c# - 异步/等待 Windows 窗体应用程序

jQuery - Kendo UI 网格 - 大量列

jQuery - 切换 .html 文本?

javascript - 我可以使用 javascript 捕获和保存网页的当前状态吗

jquery - 如何使JQuery-AJAX请求同步

jQuery 1.2.6 -> 1.6 : Possibilities?

javascript - jQuery:用变量字符串替换(连接)按钮值

javascript - SFDC 中的参数列表后缺少 )

javascript - 如何使用异步操作 WinJS 在 for 循环后执行操作