Sto utilizzando il plug-in Datatables jQuery per una piccola tabella (12 righe). Alcuni campi <input type="text" ...
consentono la modifica. Quando il campo di input perde lo stato attivo, è necessario convalidarne il valore ed eventualmente modificare il valore del campo. Non sono stato in grado di ottenere i valori dei campi di input modificati per essere riconosciuti da DataTables senza emettere uno .draw()
in seguito, ma questo fa sì che la tabella scorra fino all'inizio della tabella.Come mantenere la posizione di scorrimento di jQuery DataTables dopo .draw()
Esiste un modo per mantenere la posizione di scorrimento corrente dopo l'emissione di .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
Ho visto qualcuno che cerca di fare la stessa cosa sono e hanno indicato che il seguente codice ha funzionato per loro. Questo mi sembra un modo molto semplice per realizzare ciò di cui ho bisogno, ma ottengo sempre scrollTop = 0 me stesso. Qualcuno vede come posso ottenere l'indice di riga della riga attualmente selezionata?
var scrollPos = $(".dataTables_scrollBody").scrollTop();
$('#mytable').DataTable().rows().invalidate().draw(false);
$(".dataTables_scrollBody").scrollTop(scrollPos);
dispiace non ho visto le modifiche, è il codice è corretto, ma provo con scrollTo() $ ("dataTables_scrollBody"). ScrollTo ('# IDROW').che 'IDROW' è l'ID del ROW o solo l'ID dell'input che hai modificato –
Nel caso in cui tu abbia più dataTable con lo stesso className, dovresti usare il selettore ID $ ("# divContrainer1> .dataTables_scrollBody"). scrollTop() –
Sì, puoi farlo. Con un trucco sporco, ma puoi farlo. Cerca la mia risposta qui sotto. – PatlaDJ