Generate an input form in a jQuery datatable
To generate an input form in a jQuery datatable, you can use the render function of a column definition to return an HTML string that contains the input element. Here's an example:
HTML:
<div class="col-md-12"> <button type="button" class="btn btn-sm btn-primary" id="mct_btn_tambah"><span class="fa fa-plus"></span> Tambah Tindakan</button> <table id="mct_table" class="table" style="width:100%;"></table> </div>
JAVASCRIPT:
<script type="text/javascript">
var mct = function () {
this.table = '';
var self = this;
this.init = function () {
self.table = $('#mct_table').DataTable({
info: false,
paging:false,
sorting:false,
searching:false,
orderCellsTop: true,
columns: [
{data: null, title:'No.', name: 'no', width: '2%'},
{
data: null,
title: 'Timeline',
name: 'timeline',
width: '25%',
render: function (data, type, full, meta) {
return '<input type="text" name="mct_ipt_tk_timeline[]" class="form-control input-sm mct_ipt_tk_timeline" />';
}
},
{
data: null,
title: 'Tindakan',
name: 'tindakan',
width: '40%',
render: function (data, type, full, meta) {
return '<input type="text" name="mct_ipt_tk_tindakan[]" class="form-control input-sm mct_ipt_tk_tindakan" />';
}
},
{
data: null,
title: 'Evaluasi',
name: 'evaluasi',
width: '40%',
render: function (data, type, full, meta) {
return '<input type="text" name="mct_ipt_tk_evaluasi[]" class="form-control input-sm mct_ipt_tk_evaluasi" />';
}
},
{
data: null,
title: 'Aksi',
name: 'aksi',
width: '5%',
render: function (data, type, full, meta) {
return '<button type="button" class="btn-sm btn btn-danger form-control mct-btn-hapus"><i class="fa fa-remove"></i> Hapus</button>';
}
},
],
rowCallback: function (row, data, index) {
var page_info = self.table.page.info();
var start = page_info.start;
var no = start + index + 1;
$(row).find('td:eq(0)').html(no);
},
initComplete: function () {
},
});
};
this.addRow = function () {
self.table.row.add({}).draw();
};
};
var _mct = new mct;
$(document).ready(function () {
_mct.init();
$(document).on('click', '#mct_btn_tambah', function () {
_mct.addRow();
});
$(document).on('click', '.mct-btn-hapus', function () {
var row = $(this).closest('tr');
var data = _mct.table.row(row).data();
_mct.table.row(row).remove().draw();
});
});
</script>
Komentar
Posting Komentar