gpt4 book ai didi

jquery - 如何在$.ajax的成功回调中传递$(this)

转载 作者:行者123 更新时间:2023-12-03 22:34:26 25 4
gpt4 key购买 nike

我见过几个不同的例子,访问 $(this) 是 ajax 的成功回调,但没有一个给我想要的答案 - 它们都在 ajax 函数内访问 $(this) ,我想传递 $(this ) 到一个单独的函数。

所以如果有2个文本框需要验证

$("#tb1").focusout(function(){
$.ajax({
type:'POST',
url: 'validURL',
data: {various_parameters},
contentType: 'application/json; charset=utf-8',
dataType:'json',
success: function(data){
validInput(data, $(this));
},
error: error
});
}

$("#tb2").focusout(function(){
$.ajax({
type:'POST',
url: 'validURL',
data: {various_parameters},
contentType: 'application/json; charset=utf-8',
dataType:'json',
success: function(data){
validInput(data, $(this));
},
error: error
});
}

function validInput(response, obj){
console.log(response.d);
console.log(obj.val());
};

当我运行代码时,我得到了response.d的正确值,但出现错误:jquery-1.11.1.min.js:4 Uncaught TypeError: Cannot read property 'toLowerCase' of undefined for obj.val()。

我做错了什么吗?

感谢您的帮助。请参阅:Dos/运行

最佳答案

$(this) 相对于最内层函数,在这种情况下,您需要将 $(this) 分配给 ajax 之前的变量查询,并在成功时使用该变量。

$("#tb1").focusout(function(){
var elem = $(this);
$.ajax({
type:'POST',
url: 'validURL',
data: {various_parameters},
contentType: 'application/json; charset=utf-8',
dataType:'json',
success: function(data){
validInput(data, elem);
},
error: error
});
}

关于jquery - 如何在$.ajax的成功回调中传递$(this),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37410567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com