2016-11-09 40 views
0

我有以下的div,這是加載管窺Ajax.BeginForm - 如何從PartialView訪問新的DOM對象?

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

在這種局部視圖我有阿賈克斯形式

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

,當我提交的Ajax表單,局部視圖,包括Ajax的形式, (由服務器的新模型)

我面臨的問題是,我有jQuery事件附加到該窗體的輸入之一,它的工作,直到窗體刷新。例如在#CustomerAddressList DOM

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

Change事件的工作,直到#CustomerAddressList被新PartialView模型刷新,任何想法?

+1

一個選項是改變你的jQuery結合像'$( 「身體」)上( 「變」, 「#CustomerAddresslist」,函數(){});'。這會導致綁定拾取更改,即使該元素被刪除並重新創建。你也可以用一個更具體的選擇器和元素 – Bwolfing

回答

1

使用

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

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

因爲聽者一定會是在網頁上永久的元素,這並不重要,如果其選擇參考是動態內容的項目或不。

.on documentation.

+0

'document'替換''body'''文件'不起作用,但'身體',謝謝! – Muflix

+1

固定,文檔不需要語音標記 - 很高興提供幫助,您可以更具體地提高性能,但文本和文檔將始終有效 –