我不明白为什么变量“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/