Ich habe diesen Code unten, klicken Sie auf ein Kontrollkästchen in meinem DataTable
und erhalten Sie die IDs
und speichern Sie in einem Array. Zum Beispiel habe ich eine 2 separate DataTables
Erste ist für den Präsidenten und zweitens ist für die Senatoren.Limit überprüft, checkbox in bootstrap dataTable
Wir wissen, dass wir nur eins im Präsidenten wählen können und für Senatoren können wir viele wählen.
Mein Problem hier ist, ich kann überprüfen, wie viele Kontrollkästchen in der DataTables
. Wie man die überprüften Checkboxen eingrenzt?
Noch lernen im Bootstrap hier.
JS-Code
var dataTablestest = $("#tbltest").DataTable({
responsive: true,
processing: true,
info: true,
search: true,
stateSave: true,
order: [[1, "asc"], [2, "asc"]],
lengthMenu: [[50, 100, 200, -1], [50, 100, 200, "All"]],
ajax: { "url": "/Voting/LoadTableTest" },
columns:
[
{ data: "testID", title: "", visible: false, searchable: false },
{ data: "Fullname", title: "FullName", sClass: "alignRight" },
{ data: "Position", title: "Position", sClass: "alignRight" },
{ data: "party", title: "Party", sClass: "alignRight" },
{ data: "ActionMenu", title: "Click to vote", searchable: false, orderable: false, sClass: "alignCenter",
"mRender": function (data) {
return '<center><label><input class="checkId" type="checkbox" id="chkvote_' + data + '" value=""/></label></center>';
}
}
]
});
var arrayIds = [];
$('#tbltest tbody').on('click', 'tr', function (e) {
if ($(e.target).is(".checkId")) {
var Ids = dataTablestest.row(this).data().testID;
arrayIds.push(Ids);
return
}
});
EDIT
fand ich eine Antwort, aber es gibt ein Problem mit ihm. Mein Zähler wird jedes Mal erhöht, wenn ich ein Kontrollkästchen in meiner Datentabelle ankreuze.
$('#tbltest tbody').on('click', 'tr', function (e) {
if ($(e.target).is(".checkId")) {
if ($(e.target).is(":checked") == true) {
CheckCount = CheckCount + 1;
var Ids = dataTablestest.row(this).data().testID;
if (CheckCount > 1) {
return false;
}
arrayIds.push(Ids);
return
}
else {
CheckCount = parseInt(CheckCount) - parseInt(1);
}
}
});