Как получить значение до и после редактирования (нажатия кнопки клавиатуры) формы?

210
04 июня 2018, 13:00
$('#DisplayVote').on('keyup', function(e) {
   if ((e.which > 57 || e.which < 48) && e.which !== 8 ) {
      e.preventDefault();
   }
   var endValVote = $(e.target).val();  // Значение после правок
});

Данное событие проверяет вводимые данные в форму (пропускает только цифры и бекспейс).

Возможно ли получить значение из редактируемого input до и после правок?

При срабатывании события, сначала создать переменную с тем что было, а потом ещё одну переменную с тем, что стало.

Answer 1

keyup - это поздно для пропускания выборочных символов в инпут. Трудно представить, как оно у Вас работает. Что касается старого и нового значений:

$('#DisplayVote').data("oldvalue", $('#DisplayVote').val()); 
$('#DisplayVote').on('keyup', function(e) { 
  if ((e.which > 57 || e.which < 48) && e.which !== 8) { 
    e.preventDefault(); 
  } 
  var oldValue = $(e.target).data("oldvalue"); 
  var newValue = $(e.target).val(); 
  console.log("old: ", oldValue, "new: ", newValue); 
  $('#DisplayVote').data("oldvalue", newValue); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<input id="DisplayVote" type="text" />

Answer 2
$('#DisplayVote').bind('keyup keydown', function(){
});
Answer 3

Вообще есть крайне простой метод localstorage, который будет хранить данные на любой вкладке или даже если браузер перезапустится, пока не перезапишите или удалите значение, а записывать туда будем при нажатие кнопки (т.к. это действие всегда идет перед отпусканием)

$('#DisplayVote').on('keydown', function(e) {
localstorage.setItem('displayVote', $('#DisplayVote'));
$('#DisplayVote').on('keyup', function(e) {
if ((e.which > 57 || e.which < 48) && e.which !== 8 ) {
  e.preventDefault();
}
 var startValVote = localStorage.getItem('displayVote')
 var endValVote = $(e.target).val();  // Значение после правок
 })})
READ ALSO
Регулярные выражения и replace

Регулярные выражения и replace

Доброго времени суток

226
Не могу настроить маску для TextBox jQuery

Не могу настроить маску для TextBox jQuery

Нужно, чтобы в поле можно было вводить цифры от 1 до 10000

192
Реализация анимации

Реализация анимации

Помогите пж, нужно сделать бесконечную анимацию, которая появляется на 3 сек, а потом исчезает на 5 сек и снова появляется, итак бесконечноКак...

235
Почему slick slider добавляет слайдеры вниз?

Почему slick slider добавляет слайдеры вниз?

Как видите 8 блоков 4 снизу 4 сверху все устроено флексбоксами

248