#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
});