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