Как получить первое значение текстового поля с событием изменения с помощью javascript?

#javascript #asp.net

#javascript #asp.net

Вопрос:

У меня есть текстовое поле со значением, привязанным к базе данных. У меня есть событие onkeyup в текстовом поле. Я хочу произвести вычисление как старое значение плюс новое значение. Есть ли функция, которая может получить значение текстового поля после загрузки страницы с помощью javascript?

например, первое значение при загрузке страницы равно 5, когда я меняю текстовое поле на 3, тогда значение метки будет равно 8, когда я снова меняю текстовое поле на 4, тогда значение метки будет равно 9.

Комментарии:

1. Пожалуйста, обновите вопрос некоторым кодом, который вы пробовали….

2. @Mamun Я понятия не имею, как сделать это правильно. Если вы знаете, какую функцию или синтаксис я могу использовать для получения первого значения, я буду благодарен.

3. Вы можете сохранить старое значение в localstorage в javascript при загрузке страницы или возникновении события, затем вы можете вычислить с новым значением, и когда новое значение будет установлено снова, обновите значение localstorage.. это поможет вам localStorage.setItem("oldvalue", "3"); , и вы можете получить значение, подобное localStorage.getItem("oldvalue");

Ответ №1:

Вы должны сохранить исходное значение в атрибуте данных в дополнение к знанию фактического value . Например:

 <input id="my-text-box" type="text" data-original-value="5" value="5">
  

Затем вы можете получить доступ к исходному значению через jQuery:

 $('#my-text-box').data().originalValue;
  

или в обычном JavaScript:

 var element = document.getElementById('my-text-box');
var originalValue = element.getAttribute("data-original-value");
  

и новое значение с помощью jQuery:

 $('#my-text-box').val();
  

или в обычном JavaScript:

 var element = document.getElementById('my-text-box');
var originalValue = element.value;
  

РЕДАКТИРОВАТЬ: для простых ответов на JavaScript.

Комментарии:

1. Поскольку вопрос не помечен для jQuery, и в вопросе не упоминается его использование, лучше предположить, что jQuery не будет использоваться, и дать ответ, который не требует добавления сторонних библиотек.

2. Я обновил свой ответ простыми примерами JavaScript. Спасибо за критику.

3. @DavidKlinge Спасибо. Извините, я уже отмечаю brk как ответ и не могу поддержать ваш ответ

Ответ №2:

Вы можете использовать data атрибут и установить в нем значение по умолчанию. Затем используйте onchange прослушиватель событий, и как только фокус будет удален из ввода, он получит значение по умолчанию и новое значение. Используйте parseInt для преобразования строки в число перед добавлением

 function updateValue(e) {
  let defaultVal = e.target.dataset.val;
  let newVal = e.target.value;
  e.target.value = parseInt(defaultVal, 10)   parseInt(newVal, 10)
}  
 <input type='text' value='5' data-val='5' onchange='updateValue(event)'>  

Комментарии:

1. Я использую текстовое поле asp и событие onkeyup. Будет ли это работать? Я пробовал, но ничего не произошло.

2. @nia поместите оператор debugger или log внутри функции и посмотрите, запускается ли это

3. большое спасибо. действительно ценится. Я понял это прямо сейчас. Извините, я не могу поддержать ваш ответ, потому что я новый участник

Ответ №3:

Если у вас есть текстовый ввод с id of my-text-input и переменной с именем originalValue :

 window.onload( function() {
 originalValue = document.getElementById('my-text-input').value 
});