function CascadeDropDowns(parentClass, childClass, action, callback) {
var DropDownId = $(parentClass + " option:selected").val();
$.ajax({
url: "/site/" + action,
data: { DropDownId: DropDownId },
dataType: "json",
type: "POST",
error: function() {
alert("An error occurred.");
},
success: function (data) {
var items = "";
$.each(data, function (i, item) {
items += "<option value=\"" + item.Value + "\">" + item.Text + "</option>";
});
$(childClass).html(items);
$(childClass)[0].selectedIndex = 0;
callback();
}
});
}
$(document).ready(function() {
// Populates all child drop downs on load
var callback = function() {
CascadeDropDowns(".ConfigGroupDDL", ".ConfigNameDDL", "GetParameters");
};
CascadeDropDowns(".DeviceTypeDDL", ".ConfigGroupDDL", "GetGroups", callback);
// Populates all child drop downs parent change
$(".DeviceTypeDDL").change(function() {
var callback = function() {
CascadeDropDowns(".ConfigGroupDDL", ".ConfigNameDDL", "GetParameters");
};
CascadeDropDowns(".DeviceTypeDDL", ".ConfigGroupDDL", "GetGroups", callback);
});
$(".ConfigGroupDDL").change(function() {
CascadeDropDowns(".ConfigGroupDDL", ".ConfigNameDDL", "GetParameters");
});
});
Điều này chạy tốt và xếp thứ tự thả xuống theo đúng thứ tự, nhưng trình gỡ lỗi firefox hiển thị lỗi và tức là ném cảnh báo và hỏi xem Id có lừa dối không .Chức năng gọi lại Javascript sẽ báo lỗi "Gọi lại không phải là một chức năng" trong firefox
Mọi lời khuyên sẽ tuyệt vời
'gọi lại không được định nghĩa trong phạm vi đó'. Thay đổi 'var callback' thành' window.callback' và xem nó có hoạt động không. – Jashwant
@Jashwant Không có gì để làm với phạm vi. – epascarello