JS异步获取的回调函数如何把值传到父级中

我用的是jquery validationEngine这个插件。我需要在JS中做验证,不能在html页面上使用validate[]这种形式。


//验证函数

_validate = function(node,rules){

    var nodeValue = $(node).val(),//input的值

        nodeId = $(node).attr('id')//input的ID

        tips = '',//提示信息

        isPass = false,//如果验证不通过,则为false

        tipStatus = '';//提示类型 pass,load,error

    for(i in rules){

        swith (i){

             case 'required':

                if(!nodeValue){

                    console.log(1);//执行顺序测试

                    isPass= false;

                    tipStatus = 'error';

                    tips += '* 此值不能为空'+'<br/>';

                }

            break;

            case 'minSize':

            ....

            break;

            case 'ajax':

                switch(rules.ajax){

                    case 'ajaxUserCall'://验证是否已注册

                        if(nodeValue && isPass){//其他验证成功的情况下才做此验证

                            $.get('./?mod=member&ac=check&op=username',

                                {

                                 elId:nodeId,

                                 elValue:nodeValue

                                },

                                function(data){

                                    console.log(1);//执行顺序测试

                                    if(data[1]){//返回成功

                                       tipStatus = 'pass';

                                    }else{

                                       tipStatus = 'error';

                                    }


//具体验证

console.log(2);//执行顺序测试

$('#username').on('blur',function(){

 _validate('#username',{'required':'','minSize':4,'ajax':'ajaxUserCall'});

});

遇到的问提是在验证required的时候isPass,tips,tipStatus赋的值都能传递到“具体验证”的位置,在console中打印出来是正常的。


但是在ajaxUserCall验证时的赋值,就无法传递到这里。打印出来的值是在var初始化时的值。


我在required和ajaxUserCall的回调函数中分别打印console.log(1),在“具体验证”的位置打印console.log(2)。

当我做required验证时,console中显示的是1,2。但在做ajax验证的时候,console打印出的是2,1。感觉ajax的回调函数是在整个函数执行完之后才执行的,是不是这个原因我也不太清楚。想请教一下,如何解决这个问题,能正确的传值。谢谢


茅侃侃
浏览 699回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript