JQuery AJAX должен вызывать функцию - PullRequest
0 голосов
/ 06 сентября 2011

jquery ajax должен вызывать функцию тестирования (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 Ответ

2 голосов
/ 06 сентября 2011

Если вы посмотрите на консоль JavaScript, вы должны увидеть синтаксическую ошибку, так как ваш блок ajax неполон. Вы никогда не завершите анонимную функцию, которую вы передаете в each, и закрывающую скобку и полу в вызове each:

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), вы становитесь жертвой Ужас неявных глобалов .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...