我在局部视图中有几个下拉菜单可在$(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)中这样调用它。准备好我的父视图。
$(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 elemts可以很好地工作。
function ready() {
bindDdl("/api/get/Items",
$('#ddlItems'),
"--Select Item--",
undefined,
false);
bindDdl("/api/get/StandardGroups",
$('#ddlStandardGroups'),
"--Select Standard Group--",
undefined,
false);
}
我直接访问DOM元素没有问题,但是我多次访问它。有人可以告诉我为什么分配给变量的控件不起作用,有什么解决办法。