【发布时间】:2013-10-07 20:21:32
【问题描述】:
我目前正在尝试返回一个数据库调用来填充一个下拉框。但是,当我循环浏览返回的列表时,我收到“回调未定义”错误。我已经用两种方式尝试了这段代码,但都不起作用。
我试过了:
$('#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:回调未定义
返回的数据对象record 是我必须从中提取两部分的数据库对象列表。
如何修复这个“回调”错误,以便在我的函数中使用我的数据?
【问题讨论】:
-
你在哪里得到这个错误?如果它在 JavaScript 控制台中,错误引用了哪一行?如果它来自服务器,那么它在服务器端代码中,与此无关。
-
我正在使用 Firebug 来调试 javascript 部分。它告诉我错误出现在
jquery-1.7.js(line 654),它读取if ( callback.call( object[ name ], name, object[ name ] ) === false ) {,然后如果if为真则中断。 -
您可能错误地使用了 jQuery 函数,或者将未定义的值作为回调函数传递给它。如果您在调试器中逐步执行此操作,您的代码在 jQuery 抛出该错误之前会走多远?
-
它在 Firebug 向我显示的内容中中断并在
$.each(function (index, item) {抛出错误。