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");
});
});
To działa dobrze i kaskad na Dropdowns w odpowiedniej kolejności, ale firefox debugger pokazuje błąd i np generuje alarm i pyta, czy Id liek do debugowania .JavaScript funkcja zwrotna wyrzuca błąd „Callback nie jest funkcją” w Firefox
Wszelkie porady byłoby świetnie
'zwrotna nie jest zdefiniowane w ten zakres ". Zmień 'var callback' na' window.callback' i sprawdź, czy działa. – Jashwant
@Jashwant Nie ma nic wspólnego z lunetą. – epascarello