codeigniter表单验证返回问题

时间:2015-02-05 13:15:20

标签: javascript jquery ajax

我已经对我的注册进行了一些表单验证。 Sofar我可以在我的$ ajax成功函数中得到真或假,但是不能让它返回到prceed其余代码中......有人可以为此写一个解决方案吗?

function checkIfIsInDB(o, n){
    var target_url = window.location.pathname + 'user/check_if_username_exist',
    valid = '';        
    $.ajax({
        type: "POST",
        dataType: "json",
        url: target_url,
        data: {
            username: o.val()
        },
        success: 
        function(json){
            if(json['check']===false){
                o.addClass( "ui-state-error" ); 
                updateTips( n + " has been alredy taken." );
            }
            if(json['check']===true){
                valid = true;
            }  
        }

    });
    alert(valid); //return(valid);   need for returning true or false
}

2 个答案:

答案 0 :(得分:0)

你正在异步工作,所以你需要把你的'进程代码'放在成功:$ .ajax()函数的回调部分。

您在检查失败时已正确完成,您只需要在

中执行相同的操作
if(json['check'] ===true){
    //put your success code here - call another function perhaps
}

一部分。

答案 1 :(得分:0)

尝试在成功回调中移动alert()

function checkIfIsInDB(o, n) {
    var target_url = window.location.pathname + 'user/check_if_username_exist',
        valid = '';
    $.ajax({
        type: "POST",
        dataType: "json",
        url: target_url,
        data: {
            username: o.val()
        },
        success: function (json) {
            if (json['check'] === false) {
                o.addClass("ui-state-error");
                updateTips(n + " has been alredy taken.");
            }
            if (json['check'] === true) {
                valid = true;
            }
            alert(valid); //return(valid);   need for returning true or false
        }

    });

}