#javascript #jquery
#javascript #jquery
Вопрос:
У меня есть 2 текстовых поля (например, конвертер валют)
Я хочу обновить textbox2 при вводе текста в textbox1, какую функцию jquery мне следует использовать?
CREDIT: <input type="text" id="credit"/>
USD: <input type="text" id="usd"/>
Jquery — Запрос:
$("#credit").change(function () {
$("#usd").val((parseInt($("#credit").val(), 10) * 2));
});
Прямо сейчас значение usd обновляется из-за потери фокуса.
Какую функцию я могу использовать для обновления значения в долларах США при вводе в текстовое поле credit?
Ответ №1:
Вы не должны использовать событие «изменить», а скорее событие «ввод», чтобы узнать, изменилось ли содержимое.
$("#credit").on('input', function () {
$("#usd").val((parseInt($(this).val(), 10) * 2));
});
Комментарии:
1. Спасибо! Это именно то, что я искал. Ценю это.
2. Не забудьте принять ответ, если это то, что вам было нужно 🙂
3.
keyup
вызовет событие при нажатии любых клавиш (даже ctrl, shift и т.д.).input
Событие будет срабатывать только при изменении содержимого, поэтому оно более подходит для вашей ситуации.
Ответ №2:
input
Событие намного более всеобъемлющее / отзывчивое, чем change
событие:
$("#credit").on('input', function () {
$( "#usd" ).val( this.value * 2 );
});
Вы также можете настроить свою разметку, чтобы она могла выполнять некоторую проверку:
CREDIT:
<input type="number" id="credit" />
<br/>USD:
<input type="number" id="usd" readonly="readonly" />
Ответ №3:
Используйте это: http://jsfiddle.net/9ysC3/2 /
$("#credit").keypress(function () {
$("#usd").val((parseInt($("#credit").val(), 10) * 2));
});
On keyup
так же эффективен.
Ответ №4:
Как написано в ответе aa333, но замените нажатие клавиши на keyup, чтобы сделать обновление более отзывчивым:
$("#credit").keypress(function () {
$("#usd").val((parseInt($("#credit").val(), 10) * 2));
});