В настоящее время я пытаюсь вернуть вызов базы данных, чтобы заполнить раскрывающийся список. Однако, когда я перехожу к циклу из возвращаемого списка, я получаю сообщение об ошибке «обратный вызов не определено». Я пробовал этот код двумя способами, и ни один из них не работает.ajax «callback is undefined» error
Я пробовал:
$('#Vehicle_KovId_value').change(function() {
var kovID = $(this).val();
var drop2 = $('#Vehicle_BodyStyle_value');
if (kovID != null && kovID != '') {
drop2.get(0).options.length = 0;
drop2.get(0).options[0] = new Option('Please Select One', '-1');
$.ajax({
type: "GET",
url: '/Ajax/Index',
async: false,
data: { KovID: kovID },
contentType: "application/object; charset=utf-8",
success: function (record) {
drop2.get(0).options.length = 0;
drop2.get(0).options[0] = new Option("Please Select One", "-1");
$.each(function (index, item) {
drop2.get(0).options[drop2.get(0).options.length] = new Option(item.Display, item.Value);
});
},
error: function() {
$('#Vehicle_BodyStyle_value').get(0).options.length = 0;
$('#Vehicle_BodyStyle_value').get(0).options[0] = new Option("Error!", "-1");
alert("Failed to load styles");
}
});
}
});
Я также попытался:
$('#Vehicle_KovId_value').change(function() {
var kovID = $(this).val();
var drop2 = $('#Vehicle_BodyStyle_value');
if (kovID != null && kovID != '') {
drop2.get(0).options.length = 0;
drop2.get(0).options[0] = new Option('Please Select One', '-1');
$.ajax({
type: "GET",
url: '/Ajax/Index',
async: false,
data: { KovID: kovID },
contentType: "application/object; charset=utf-8",
success: function (record) {
drop2.get(0).options.length = 0;
drop2.get(0).options[0] = new Option("Please Select One", "-1");
fillBStyles(record);
// $.each(function (index, item) {
// drop2.get(0).options[drop2.get(0).options.length] = new Option(item.Display, item.Value);
// });
},
error: function() {
$('#Vehicle_BodyStyle_value').get(0).options.length = 0;
$('#Vehicle_BodyStyle_value').get(0).options[0] = new Option("Error!", "-1");
alert("Failed to load styles");
}
});
}
});
function fillBStyles(r) {
var drop2 = $('#Vehicle_BodyStyle_value');
$.each(function (index, item) {
drop2.get(0).options[drop2.get(0).options.length] = new Option(item.Display, item.Value);
});
}
Оба которые дают мне ошибку:
TypeError: callback is undefined
Объект данных возвращаемой, record
, это список объектов базы данных, из которых я должен извлечь две части.
Как исправить эту ошибку «обратного вызова», чтобы я мог использовать свои данные в своей функции?
Где конкретно вы получаете эту ошибку? Если это в консоли JavaScript, какая строка содержит ссылку на ошибку? Если это происходит с сервера, то это код сервера и не имеет ничего общего с этим. – David
Я использую Firebug для отладки части javascript. Это говорит мне, что ошибка находится в 'jquery-1.7.js (строка 654)', которая читает 'if (callback.call (object [name], name, object [name]) === false) {' затем ломается, если это 'if' истинно. – Kendra
Скорее всего, вы используете функцию jQuery неправильно или передаете это неопределенное значение в качестве функции обратного вызова. Если вы пройдете через это в отладчике, насколько далеко ваш код до того, как jQuery выбрасывает эту ошибку? – David