我正在动态创建一个HTML表格,并且在表格标题列中我有复选框和文本。在初始加载时会检查一些复选框,而不检查一些复选框。之后我在我的HTML表上应用datatable插件。但是,当我检查或取消选中标题中的某些复选框并尝试读取新值时,我始终会在复选框创建时获得原始值。
以下是我如何阅读列复选框值
var columns = $('#myTable').dataTable().dataTableSettings[0].aoColumns;
$.each(columns, function (i, v) {
var object = jQuery.parseHTML(v.sTitle);//innerHTML of input type='checkbox'
if (object != null) {
chkbox = object[0]; //object[1] is Text
isChecked=chkbox.checked;
}
});
修改 我的HTML用于初始加载时选中和未选中的复选框
对于选中的复选框
<input style='margin-right:5px' onclick=EnableDisableColumn(this); id='" + id+ "' **checked='checked'** type='checkbox' Value='" + value + "' name='" + name+ "' />"
对于Un -hecked Check Box
<input style='margin-right:5px' onclick=EnableDisableColumn(this); id='" + id+ "' type='checkbox' Value='" + value + "' name='" + name+ "' />"
答案 0 :(得分:1)
dataTables不响应DOM中的更改,并在选中复选框时神奇地更新其内部变量。 dataTables在任何情况下都返回<th>
的内容,就像初始化表时一样。从dataTables的角度来看,<th>
的内容只是纯文本的一部分。
为什么要绕过dataTables呢?标题和复选框可以像往常一样在javascript或jQuery中完全访问,我们没有dataTables。
这是一个例子 - &gt;的 http://jsfiddle.net/XTpKH/ 强>
var dataTable = $('#example').dataTable();
$('th').click(function() {
var msg = 'this header checkbox is ';
msg += $(this).find('input[type="checkbox"]').is(':checked') ? ' ' : 'not ';
msg +='checked'
alert(msg);
});