我是数据表新手,并且已经在数据表的每一行中实现了复选框。为此,我已遵循此示例。
我只想返回选定行的数据,但它返回表单提交操作上的所有数据。
这是截图
在上面的屏幕截图中,我只选择了第二行和第三行,但 table.column(0).checkboxes.selected() 返回所有行。
Javascript代码
var paramedics;
table;
var i = 0;
$(document).ready(function () {
table = $("#example").DataTable({
"ajax": {
"url": "/Home/GetCaseAllocations",
"type": "GET",
"datatype": "json",
},
"select": {
"style": "multi"
},
"order": [[1, "asc"]],
"columns": [
{
"data": null,
'targets': 0,
'checkboxes': {
'selectRow': true
}
},
{ "data": "patientId" },
{ "data": "name" },
{ "data": "age" },
{ "data": "zipCode" },
{ "data": "status" },
{ "data": "currentAllocation" },
{
"data": "paramedicsAvailable", width: "200px",
render: function (data, type, row) {
var $select = $("<select></select>",
{
id: "allocation" + i
});
$.each(data, function (k, v) {
var $option = $("<option></option>",
{
text: v,
value: k
});
if (row.owner === v) {
$option.attr("selected", "selected")
}
$select.append($option);
});
return $select.prop("outerHTML");
i++;
}
},
],
});
$("#frm-example").on('submit', function (e) {
var form = this;
var rows_selected = table.column(0).checkboxes.selected();
// Iterate over all selected checkboxes
$.each(rows_selected, function (index, rowId) {
// Create a hidden element
console.log(table.row(index));
$(form).append(
$('<input>')
.attr('type', 'hidden')
.attr('name', 'id[]')
.val(rowId)
);
});
});
});
jQuery DataTables Checkboxes 插件当前的限制之一是包含复选框的列必须具有唯一的数据。
使用
columns.data
选项在包含唯一数据的响应中定义数据属性。例如:
"columns": [
{
"data": "patientId",
'targets': 0,
'checkboxes': {
'selectRow': true
}
},
// ... skipped ...
],
检查以下内容
// Get the selected
var row = $("#example").column(0).checkboxes.selected();
// Create variable for the ids array
var selected_items = [];
// Loop through to get the selected id
$.each(row, function(index, rowId){
//this add selected ID as object into array
selected_items.push({id:rowId});
});
我使用此代码对表单和数据表进行了多次检查,但使用最新版本的数据表,它不再起作用,我不知道如何使其起作用。 我需要的是选择几条记录并发布这些记录的 id,以对所有这些记录应用相同的修改。 非常感谢你