jquery ajax应该调用函数

时间:2011-09-06 10:53:40

标签: jquery html ajax

jquery ajax应该调用testing(propertyLevelId)函数。

function name(roleId) {
$.ajax({
    url: '../UserManagement/GetRoleLevel' + '/?roleId=' + roleId,
    type: "POST",
    dataType: "json",
    contentType: 'application/json',
    //async: false,
    success: function (result) {
        $.each(result, function (key, value) {
            alert(value.Value);
            propertyLevelId = value.Value;
        testing(propertyLevelId);//It doesnt call the function
    },
    complete: function () { },
    error: ServiceFailed// When Service call fails
});    
}


function testing(propertyLevelId) {
    alert(propertyLevelId);
}

1 个答案:

答案 0 :(得分:2)

如果查看JavaScript控制台,您应该会看到语法错误,因为您的ajax块不完整。你永远不会完成你传递给each的匿名函数以及each调用中的结束paren和semi:

success: function (result) {
    $.each(result, function (key, value) {
        alert(value.Value);
        propertyLevelId = value.Value;
    testing(propertyLevelId);//It doesnt call the function
    // ===> here <===
},

如果您始终缩进代码,这会有所帮助,因此您可以更轻松地查看这些拼写错误。

这是一个固定版本:

function name(roleId) {
    $.ajax({
        url: '../UserManagement/GetRoleLevel' + '/?roleId=' + roleId,
        type: "POST",
        dataType: "json",
        contentType: 'application/json',
        //async: false,
        success: function (result) {
            $.each(result, function (key, value) {
                alert(value.Value);
                propertyLevelId = value.Value;
                testing(propertyLevelId);//It doesnt call the function
            });
        },
        complete: function () { },
        error: ServiceFailed// When Service call fails
    });    
}

作为旁注,除非你在一个未显示的封闭范围内的某个地方声明propertyLevelId(我不是在谈论testing同名的论点,我在谈论您在匿名success函数中使用的变量时,您正在成为The Horror of Implicit Globals的牺牲品。