如何从JQuery / Ajax函数返回true / false?

时间:2017-11-30 14:17:43

标签: javascript jquery ajax

我有从系统中几个不同位置使用的功能。我现在需要的是返回truefalse取决于函数是否成功完成。这是我到目前为止的例子:

function userUnlock(userID){
    var fnResult;

    $.ajax({
        type: 'POST',
        url: 'Application.cfc?method=removeLock',
        data: {'userID':userID},
        dataType: 'json'
    }).done(function(obj){
        if(obj.STATUS == 200){
            fnResult = true;
        }else{
            fnResult = false;
        }
    }).fail(function(jqXHR, textStatus, errorThrown){
        alert("Error: "+errorThrown);
    });

    return fnResult;
}

这是我的onClick功能:

$("#unlockBtn").on("click", function(){
    var userID = $.trim($("#userID").val());

    if(userID){
        console.log(userUnlock(userID));
        $("#unlockBtn").prop("disabled",true);
        $('#searchMsg').addClass("success").show().text("User is unlocked.").delay(3000).fadeOut('slow').queue(function(){
            $(this).removeClass("success").dequeue();
            $("#unlockBtn").css("display","none");
        });
    }else{
        $('#searchMsg').addClass("error").show().text("Error.").delay(3000).fadeOut('slow').queue(function(){
            $(this).removeClass("error").dequeue();
        });
    }
});

在我的onClick函数console.log()中返回undefined。我不确定为什么会这样,因为我返回了布尔值变量。此外,我想知道是否有办法防止多个请求onClick。例如,如果用户偶然点击了几次。一种方法是禁用按钮属性,我这样做但我想确保我的功能可以防止多个请求。如果有人能提供一些很棒的例子。谢谢。

0 个答案:

没有答案