У меня есть DataTable var table = $('#example').dataTable()
, который должен быть заполнен при изменении значения в раскрывающемся списке.Я хочу выбрать запись в раскрывающемся списке, и это действие вызовет запрос AJAX, передавая val()
выбранной записи в качестве идентификатора для запроса.
У меня также есть элемент управления select
дляform, которая пуста во время разработки и заполняется другим AJAX-запросом.И последнее, но не менее важное: у меня есть скрытый элемент управления, в котором хранится идентификатор до его фактической публикации в DataTable:
<div>
<select class="form-control" id="objs" style="display:none">
</select>
</div>
<input class="form-control" type="hidden" id="oid" name="oid" value="0">
Вот как я делаю все остальное:
$('#objs').change(function() {
$('input[name="oid"]').val(this.value);
table.DataTable({
ajax: {
data: {oid: $('#oid').val()}
}
});
//alert($('input[name="oid"]').val());
table.DataTable().ajax.reload();
});
Раскрывающийся списокonchange
Обработчик событий работает отлично и отображает идентификаторы объектов в окне предупреждения.Однако инструменты отладки Chrome показывают, что oid
управление формой никогда не инициализируется .Таким образом, форма, которая создается внутри DataTable, публикуется без идентификатора объекта.Вот как это выглядит:
Array
(
[oid] =>
)
Что я делаю не так?Я подозреваю, что могут быть некоторые переменные области видимости или DataTable просто игнорирует текущее значение oid
, когда он запускает ajax.reload()
.