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");
});
});
Bu iyi çalışır ve çağlayan doğru sırada Açılır menülerde, ancak firefox ayıklayıcı hata gösteriyor ve yani bir uyarı atar içinde "geri arama bir işlev değil" ve isterse debug Kimliği dokunuşlar .JavaScript geri çağırma işlevi hata atar firefox
Herhangi bir tavsiye her zaman bu yöntemle içine geri arama geçmezken, çünkü öyle
'geri arama tanımlı değil
CascadeDropDowns(".ConfigGroupDDL", ".ConfigNameDDL", "GetParameters");
Bir -Optionnal argüman olarak
callback
argüman tedavi etmek için işlevini değiştirmek gerekir bu kapsamı. 'Var callback' öğesini 'window.callback' olarak değiştirin ve işe yarayıp yaramadığını görün. – Jashwant@Jashwant Kapsam ile ilgisi yoktur. – epascarello