Я не смог использовать плагин с данными JQuery здесь:
https://editor.datatables.net/examples/inline-editing/simple
Я продолжал получать сообщение об ошибке, поэтому я просто уронил его и решил сделать это сам.
Начиная с таблицы данных:
$.ajax({
url: 'api/searchVoyageInfo.php',
type: 'POST',
data: '',
dataType: 'html',
success: function(data, textStatus, jqXHR){
var jsonObject = JSON.parse(data);
var table = $('#example1').DataTable({
"data": jsonObject,
"columns": [{
{ "data": "COLUMN1" },
{
"data": "COLUMN2",
"fnCreatedCell": function (nTd, sData, oData, iRow, iCol)
{
$(nTd).html("<a href='#' class='checkBound'>"+oData.COLUMN2+"</a>
<input type='text' class='editbound'
id='editbound' data-uid='"+oData.VOYID+"'
data-editbound='"+oData.COLUMN2+"' value='"+oData.BOUND+"
display: none;' />");
}
},
{ "data": "COLUMN3" },
// few more columns
}],
"iDisplayLength": 50,
"paging": true,
"bDestroy": true,
"autoWidth": true,
"dom": 'Bfrtip',
"buttons": [
// some extend buttons
]
});
},
error: function(// some stuff){
// do some other stuff
// this part is not important
}
});
В COLUMN2 вы должны увидеть класс 'checkBound', который виден при загрузке страницы. Существует также входной класс 'editbound', который не отображается.
Вот функция, которая должна скрывать класс 'checkBound', а затем отображать класс 'editbound':
$('#example1').on('click', 'tr > td > a.checkBound', function(e)
{
e.preventDefault();
var $dataTable = $('#example1').DataTable();
var tr = $(this).closest('tr');
var data = $dataTable.rows().data();
var rowData = data[tr.index()];
$('.checkBound').hide();
$('.editbound').show();
});
Используя вышеизложенное, когда страница завершает загрузку, таблица данных отображается без проблем.
Если щелкнуть одну из ячеек с классом 'checkBound', чтобы отобразить входной класс 'editbound', входные данные отображаются сами по себе, но также отображаются все остальные ячейки в столбце.
Перед кликом:
После нажатия:
Как видите, первая ячейка в столбце BOUND - это ячейка, по которой щелкнули. Но при нажатии остальные ячейки были активированы. Я хочу предотвратить это.
Как я могу сделать эту работу?