【问题标题】:javascript child function pass the return to the parent function return [duplicate]javascript子函数将返回传递给父函数返回[重复]
【发布时间】:2013-04-06 21:56:54
【问题描述】:

我想将“子”(我不知道正确的术语)函数的返回值传递给父函数中的返回值...如何正确执行此操作? check_data() 没有返回 true 或 false

function check_data(type,field){
    var chkvalue = $(field).val();
    $.post("mods/ajax.fieldchk.php", {
        chkvalue: chkvalue,
        type: type
    },
    function(result){
        if(result==0){
            $(field).css({'background-color': '#faa', 'border': '1px solid #f00'});
            return false;
        }else if(result==1){
            $(field).css({'background-color': '#afa', 'border': '1px solid #0f0'});
            return true;
        }
    };
}

thnx

【问题讨论】:

  • 您无法从$.post() 等异步操作返回。阅读以上主题,了解如何使用回调和延迟对象。
  • $.post 默认是一个异步函数,所以你的 check_data 函数会在你期待它之前退出

标签: javascript jquery ajax function callback


【解决方案1】:

由于$.post 是一个异步函数,您不能使用它返回check_data 上的数据。但是,您可以传递一些回调并使用 true/false 参数执行。

类似这样的:

function check_data(type,field,callback){
    var chkvalue = $(field).val();
    $.post("mods/ajax.fieldchk.php", {
        chkvalue: chkvalue,
        type: type
    },
    function(result){
        if(result==0){
            $(field).css({'background-color': '#faa', 'border': '1px solid #f00'});
            callback(true);
        }else if(result==1){
            $(field).css({'background-color': '#afa', 'border': '1px solid #0f0'});
            callback(false);
        }
    };
}

【讨论】:

  • 我认为您最好提供一个示例回调函数。
  • @LeeTaylor 如果我知道他想要达到的目标我会这样做
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-10
  • 1970-01-01
  • 2013-10-23
  • 2020-08-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多