У меня есть столбец в DataTable в Jquery, где в каждой строке ячейка, соответствующая столбцу, имеет выпадающий список внутри него.
Я отображаю этот раскрывающийся список, определяя его в параметрах columnDefs следующим образом:
$(document).ready(function() {
$('#example').DataTable(
"columnDefs":[
{
"render": function(d,t,r){
var $select = $("<select></select>", {
"id": r[1]+"start",
"value": d,
"class": r[1]
});
$.each(times, function(k,v){
var $option = $("<option></option>", {
"text": v,
"value": v
});
if(d === v){
$option.attr("selected", "selected")
}
$select.append($option);
});
return $select.prop("outerHTML");
},
"targets": 2
}
]
)})
Переменная данных times
в операторе $.each
- это просто переменная, которую я загружаю из localStorage
, которая состоит из дат.
Поскольку я хочу дождаться загрузки данных в DataTables, прежде чем выбрать элемент, я добавляю опцию с именем initComplete
, и в нее я добавляю метод change()
, а также метод для сохранения изменения значение в localStorage
:
"initComplete": function(settings, json) {
$(function() {
$('.SomeDate').change(function() {
localStorage.setItem('storeddata', this.value);
});
if(localStorage.getItem('storeddata')){
$('.SomeDate').val(localStorage.getItem('storeddata'));
}
});
}
Выпадающий тег <select>
, сгенерированный во внешнем интерфейсе, выглядит так:
<select id="SomeDatestart" value="SomeValue" class="SomeDate"></select>
По какой-то причине, когда я выбираю элемент в раскрывающемся списке, я не получаю никаких результатов, сохраненных в localStorage
.
Я мог бы заставить селектор выбрать тег выбора id
вместо тега выбора class
, но даже пытаясь это сделать, я не смог вызвать событие change()
.
Однако я попытался использовать метод change()
, описанный выше, изолировать его от функции, в которой есть данные, и создать фиктивный выпадающий список с тем же тегом select и образцами тегов <option>
, и после этого я смог успешно запустить метод change()
и аналогичным образом сохранить значение в localStorage
.
Я что-то упустил? Возможно, есть другой способ вызова метода change()
для выборок в DataTables?