Я использую jQuery DataTable
и на панели инструментов есть checkbox
, который используется для извлечения всех записей. Как stateSave особенности DataTable
не работает должным образом, я пытался использовать jquery.cookie, чтобы сохранить значение флажка после перезагрузки DataTable
(поскольку флажок перерисовываются динамически на каждой перезагрузке), как показано ниже:Невозможно сохранить значение флажка с помощью jquery.cookie
$(document).ready(function() {
$('#example').DataTable({
//code omitted for brevity
"serverSide": true,
"ajaxSource": "/Student/GetStudents",
"fnServerData": function (sSource, aoData, fnCallback) {
/* Add some extra data to the sender */
aoData.push({ "name": "isAll", "value": $("#cbIsAll").is(":checked") });
$.getJSON(sSource, aoData, function (json) {
/* Do whatever additional processing you want on the callback, then tell DataTables */
fnCallback(json);
});
},
"fnDrawCallback": function() {
$("div.toolbar").html('<input type="checkbox" id="cbIsAll" name="demo" /> Get all records');
}
});
$(document).on('change', '#cbIsAll', function() {
var isClicked = $('#cbIsAll').is(':checked') ? true : false;
$.cookie('clicked', isClicked, { expires: 1 }); // expires in 1 day
table.ajax.reload();
$('#cbIsAll')[0].checked = ($.cookie('clicked') == "true") ? true : false;
});
});
После отладки в коде я увидел, что хотя строка $('#cbIsAll')[0].checked
выполнена правильно как истина, checkbox
потерял значение позже этой строки. Не могли бы вы пояснить мне, где ошибка? Или есть лучший и умный способ сохранить значение checkbox
?
Почему вы не используете 'prop ('checked')'? – madalinivascu
Для чего же линия? –
Последняя строка события изменения – madalinivascu