分配给变量的控件在Ajax.BeginForm OnSuccess方法中不起作用

时间:2019-05-10 08:13:09

标签: javascript jquery asp.net-mvc partial-views

我在局部视图中有几个下拉菜单可在$(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元素没有问题,但是我多次访问它。有人可以告诉我为什么分配给变量的控件不起作用,有什么解决办法。

0 个答案:

没有答案