在使用jQuery的.post之后,从一个函数传递到另一个函数的变量变得不确定

时间:2013-12-11 17:09:20

标签: javascript jquery ajax parameters

我有一个函数成功地将值data_user_id的{​​{1}}传递到2但是,我认为.post语句的异步性质会以某种方式取出值,所以当我这样做时function getOptionsList(fieldname_validation,data_user_id)函数中的.post,然后data_user_id将在接下来传递的函数中未定义。像这样:

getOptionsList

如何解决此问题?

1 个答案:

答案 0 :(得分:2)

您已将data_user_id声明为内部函数的参数,因此它与外部方法的参数不同。由于$.post方法只会为回调提供3个参数,因此第四个参数将始终为undefined(第三个参数将是jqXhr个对象,我不相信是你期待)。

解决方案是删除此参数(也可能是fieldname_validation):

function getOptionsList(fieldname_validation,data_user_id){ 
        $.post('Controller.php',
        {
            action: 'get_options_list',
            user: userJson
        },
        function(data, textStatus) {
            showOptionsList(data, fieldname_validation, data_user_id);
            $('#indicator').hide();
        }, 
        "json"      
    );  
}