2016-10-04 43 views
0

我可以輕鬆地趕上點擊複選框的事件的情況下,如下圖所示:不能趕上點擊HTML字符串的元素

<input type="checkbox" id="checkbox1" /> 

$('#checkbox1').change(function() { 
    if (this.checked) { 
     //Do stuff 
    } 
}); 

在另一方面,我創建AJAX的回調複選框(jQuery的數據表)爲HTML和點擊同一元素的事件不能被獲取:

//... 
"ajaxSource": "/Student/GetStudents", 
"fnServerData": function (sSource, aoData, fnCallback) { 
    aoData.push({ "name": "all", "value": all }); 
    $.getJSON(sSource, aoData, function (json) { 
     fnCallback(json); 
     $("div.toolbar").html('<input type="checkbox" id="checkbox1" /> Get all records'); 
    }); 
}, 

什麼是最合適的方法來獲得在HTML字符串的複選框值?

+0

您需要使用jQuery on()方法。 http://stackoverflow.com/questions/10082031/why-use-jquery-on-instead-of-click –

回答

2

更改事件偵聽器是在當前存在的所有DOM元素上創建的,所以當您添加新複選框時,未註冊更改方法。將您的代碼更改爲此。

$(document).on('change','#checkbox1',function() { 
    //stuff 
}); 
+0

它似乎工作,但我不能讓複選框保留其價值,因爲它是在AJAX調用的每個回調中呈現。可能嗎?另一方面,我應該在回調方法的回答中使用該方法嗎?或jQuery的onload? –

+0

如何使用隱藏字段? –

+0

該方法沒有進入AJAX回調,它應該去你現在擁有它的地方。要解決您的問題,請將複選框值保存在變量中,並將AJAX回調設置複選框值保存爲保存的值。 –