У меня есть несколько выпадающих списков в моем частичном представлении, которые будут загружены в событие $ (document) .ready (), а также во время события Ajax.BeginForm OnSuccess. Поэтому я назначил их переменным и объявил функцию, как показано ниже в моем ParentView.
let ddlItem = $('#ddlItems');
let ddlStandardGroup = $('#ddlStandardGroups');
function ready() {
console.log(typeOf($(ddlItem)));
bindDdl("/api/get/Items",
$(ddlItem),
"--Select Item--",
undefined,
false);
bindDdl("/api/get/StandardGroups",
$(ddlStandardGroup),
"--Select Standard Group--",
undefined,
false);
}
Называть это так в $ (document) .ready моего родительского представления.
$(document).ready(function () {
ready();
});
И вот так во время OnSuccess из моего частичного представления.
@using (Ajax.BeginForm("Save", "RoomItem", new AjaxOptions() { InsertionMode = InsertionMode.Replace, HttpMethod = "POST", UpdateTargetId = "partialDiv", OnSuccess = "ready", OnFailure = "ready" }))
{}
Теперь моя проблема заключается в том, что console.log работает отлично, он показывает вывод в виде объекта. Но выпадающие списки пусты, и все связанные с ними события изменений также исчезли. Не уверен, почему это происходит. Когда я изменяю ту же функцию, как показано ниже, прямой доступ к элементам DOM работает отлично.
function ready() {
bindDdl("/api/get/Items",
$('#ddlItems'),
"--Select Item--",
undefined,
false);
bindDdl("/api/get/StandardGroups",
$('#ddlStandardGroups'),
"--Select Standard Group--",
undefined,
false);
}
У меня нет проблем с прямым доступом к элементам DOM, но я обращаюсь к нему несколько раз. Может кто-нибудь сказать мне, почему элементы управления, присвоенные переменным, не работает, любое решение.