0

「子」(正しい用語がわかりません) 関数からの戻り値を親関数の戻り値に渡したいのですが、これを行う正しい方法は何ですか? 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

4

1 に答える 1

3

は非同期関数であるため$.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);
        }
    };
}
于 2013-04-06T21:59:40.730 に答える