jQuery Ajax呼叫返回

康比奴

我做了一个函数,它是下面的一个函数,我将数据传递给它并按原样返回结果。我这样做是因为我将需要大量的ajax调用,而我只是做了一个函数,将数据传递给它并按原样获取结果并使用结果。

function FunctionsCall(data){
var ret;
$.ajax({
type:'GET',
url: 'includes/helpers/functions.php',
dataType:"json",
data: data,
success: function(result){
    ret = result;
}});
return ret;}

现在我在需要的地方调用它:

$('#register-name, #register-surname').keyup(function(e) {
var x = FunctionsCall({query: $(this).val(), funcid: 1});
(x!==1) ? $(this).addClass('input-has-error') : $(this).removeClass('input-has-error'); });

但是奇怪的是,我总是将x视为未定义。指出ret是用1或0填充的,我不知道为什么它没有被传递给x。

你能帮我吗?这可能很简单,但我只是在需要时使用javascript和jquery进行实验。

问候

伊恩

ret在成功函数运行时(即ajax完成时)才被设置。FunctionCall但是马上返回。您将需要返回ajax延迟对象,或者将addClass / removeClass功能放入您的成功函数中。

将addClass / removeClass功能添加到成功功能的方法如下:

function FunctionsCall(data, successFn) {
    $.ajax({
        type: 'GET',
        url: 'includes/helpers/functions.php',
        dataType: "json",
        data: data,
        success: successFn
    });
}

$('#register-name, #register-surname').keyup(function(e) {
    var element = $(this);
    var data = { query: element.val(), funcid: 1 };
    var successFn = function(x) { 
        if (x !== 1) { 
            element.addClass('input-has-error')
        } else {
            element.removeClass('input-has-error');
        }
    }
    FunctionsCall(data, successFn);
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章