2014-03-12 91 views
2

在我的ASP.NET項目中,我有一個部分類,其中有三個單選按鈕。爲什麼jQuery無法在Ajax更新後觸發事件

我有以下細節的局部視圖,

_PartialTEST.cshtml

@model FreeLance.Web.Models.PArtialTESTModel 

@Html.RadioButtonFor(m => m.D1, "true", new { Name = "test1", @id = "g1", @checked = "true" }) @Html.LabelFor(m => m.MSGD1, @Model.V1) 
@Html.RadioButtonFor(m => m.D2, "false", new { Name = "test1", @id = "g2" }) @Html.LabelFor(m => m.MSGD2, @Model.V1) 
@Html.RadioButtonFor(m => m.D3, "false", new { Name = "test1", @id = "g3" }) @Html.LabelFor(m => m.MSGD3, @Model.V1) 

這是另一種觀點認爲使用

MainTEST.cshtml

<div id="partialDIV"> 
     @{ 
      @Html.Partial("_PartialTEST", Model) 
     }       
</div> 

我重裝了div的內容,使用AJAX,一個事件有新的價值

$.ajax({ 
       type: "POST", 
       url: href,    
       traditional: true, 
       async: false, 
       datatype: "html", 
       cache: false, 
       contentType: 'application/json', 
       data: { DID: DID }, 
       success: function (data) { 
        $('#partialDIV').empty(); 
        $('#partialDIV').html(data); 
       }, 
       error: function (arg, data, value) { 

       } 
      }); 

它調用以下背後從代碼的代碼更新單選按鈕。

[HttpPost] 
     public ActionResult GETRADIOVALUES(string CID) 
     { 
      TESTModel NewModel = new TESTModel(); 
      .... 
      return PartialView("_DurationDetails",NewModel); 
     } 

現在它使用新值正確加載單選按鈕。

但真正的問題是任何Jquery事件被調用。

例如

$('#g1').change(function() { 
}); 

甚至,

$("input[name=test1]:radio").change(function() { 

}); 

請幫我爲什麼這些jQuery的事件不觸發,儘管在標識查看源代碼可用也。

+0

你AJAX功能有一些東西,不應該出現像'數據類型:html'然後'的contentType: 「應用/ JSON」 '。 – Jai

+0

尊敬的Jai,我不確定您是否對此投反對票? PLZ看看這個問題,顯然我錯過了數據類型[問題](http://stackoverflow.com/questions/22343533/update-partial-view-with-ajax) – TBA

+0

不,我沒有downvoted這個問題。 – Jai

回答

6

對於動態創建的元素,您需要event delegation

$(document).on('change',"input[name=test1]:radio",function() { 
    //code here 
}); 
+0

謝謝你的工作。不知道:) – TBA

+0

親愛的米林如果我想檢查這個條件,如果($('#g1')。('':checked')) – TBA

+0

你想要它只有一個ID爲' g1' ??。如果是,那就把'input [name = test1]:radio'改成'#g1' –

1

嘗試這樣

$('#partialDIV').on('change', '#g1', function(){ 
.... 
}); 

也看看.on()

+0

謝謝Jogesh,但米林德只是幾秒鐘...並感謝鏈接... – TBA

相關問題