我正在使用bootstrap dataTables。我有可编辑的单元格,到目前为止我的代码工作得非常好:
<script src="https://raw.githubusercontent.com/ejbeaty/CellEdit/master/js/dataTables.cellEdit.js"></script>
$(document).ready(function () {
var table = $('#myTable').DataTable();
$('#myTable tbody').on('click', 'td', function () {
$('#myTable').data('column', table.cell(this).index().columnVisible);
});
table.MakeCellsEditable({
"onUpdate": myCallbackFunction
});
});
function myCallbackFunction(updatedCell, updatedRow, oldValue) {
var array = updatedRow.data();
var id = array[0];
var column = $('#myTable').data('column');
console.log("The column is: " + column);
jQuery.ajax({
type: "POST",
url: "update.php",
data: {
updatedCell: updatedCell.data(),
id: id,
column: column,
},
cache: false
});
}
我的控制台中的输出例如是:The column is 1
我想添加一个功能,即第1列和第2列不应该是可编辑的,而是所有其他功能。所以我改变了我的代码:
$(document).ready(function () {
var table = $('#myTable').DataTable();
$('#myTable tbody').on('click', 'td', function () {
$('#myTable').data('column', table.cell(this).index().columnVisible);
});
var column = $('#myTable').data('column');
console.log("The new column is: " + column);
if (column !== 1 || column !== 2) {
table.MakeCellsEditable({
"onUpdate": myCallbackFunction
});
}
}
但参数未通过。我的输出是:The new column is: undefined
另一种解决方案是:
$(document).ready(function () {
var table = $('#myTable').DataTable();
var column;
$('#myTable tbody').on('click', 'td', function () {
column = $('#myTable').data('column', table.cell(this).index().columnVisible);
});
column = $('#myTable').data('column');
console.log("The new column is: " + column);
if (column !== 1 || column !== 2) {
table.MakeCellsEditable({
"onUpdate": myCallbackFunction
});
}
}
但仍然是输出The new column is: undefined