Ajax.BeginForm - 如何从PartialView访问新的DOM对象?

时间:2016-11-09 18:30:54

标签: jquery ajax asp.net-mvc

我有以下div,它正在加载Partial View

<div id="_customerForm">
            @Html.Partial("~/Views/Customer/_customerForm.cshtml", Model.customerForm)
</div>

在该部分视图中我有Ajax表单

@using (Ajax.BeginForm("UpdateCustomer",
        "Customer",
         new AjaxOptions()
         {
               HttpMethod = "POST",
               InsertionMode = InsertionMode.Replace,
               UpdateTargetId = "_customerForm",
         }
))
{
...
}

当我提交Ajax表单时,将重新生成部分视图(包括Ajax表单)(来自服务器的新模型)

我面临的问题是我将jquery事件附加到该表单的一个输入上,该表单有效,直到表单刷新为止。例如

$("#CustomerAddressList").change(function () { ... });

#CustomerAddressList DOM上的更改事件有效,直到#CustomerAddressList被新的PartialView模型刷新,任何想法?

1 个答案:

答案 0 :(得分:1)

使用

$(document).on("change", "#CustomerAddressList", function(){
...
});

$("body").on("change", "#CustomerAddressList", function(){
...
});

因为侦听器绑定到页面上持久的元素,所以选择器引用的项目是否是动态内容并不重要。

.on documentation.