Я использую плагин jQuery Datatables для таблицы smal (12 строк). Некоторые поля <input type="text" ...
позволяют редактировать. Когда поле ввода теряет фокус, мне нужно проверить его значение и, возможно, изменить значение поля. Мне не удалось получить измененные значения входных полей, которые будут распознаны DataTables, после чего после этого не будет выдан .draw()
, но это приведет к тому, что таблица будет прокручиваться до верхней части таблицы.Как сохранить jQuery DataTables прокручивать позицию после .draw()
Есть ли способ сохранить текущую позицию прокрутки после выдачи .draw()?
$('#mytable').on('blur', 'input', function (e) {
var inputFieldId = this.id;
var inputFieldVal = $(this).val();
{ ... perform validation of field value ... }
$('#mytable').DataTable().rows().invalidate().draw();
});
EDIT
Я видел, кто-то пытается сделать то же самое, что и я, и они указали, что следующий код работает для них. Это похоже на очень простой способ выполнить то, что мне нужно, но я всегда получаю scrollTop = 0. Кто-нибудь видит, как я могу получить индекс строки текущей выбранной строки?
var scrollPos = $(".dataTables_scrollBody").scrollTop();
$('#mytable').DataTable().rows().invalidate().draw(false);
$(".dataTables_scrollBody").scrollTop(scrollPos);
К сожалению, я не видел изменения, вы код правильный, но попробуйте с scrollTo() $ ("dataTables_scrollBody"). ScrollTo ('# IDROW').который «IDROW» является идентификатором ROW или просто идентификатором введенного вами ввода. –
На всякий случай, если у вас есть несколько таблиц данных с таким же именем класса, вы должны использовать идентификатор select ($ div. –
Да, вы можете это сделать. С грязным взломом, но вы можете. Ищите мой ответ ниже. – PatlaDJ