я хочу дать val из keyup в jquery
мой код:
var vartest;
$( ".target" ).keyup(function() {
vartest= this.value;
console.info('in func:' + vartest);
});
console.info('out of func:' + vartest);
но vartest не определен
посмотреть код обновления
нет, не работает
Я не уверен, что это то, что вам нужно, но если вы хотите получить значение ввода, где произошло событие, вы должны взять его из цели события:
$(‘.target’).keyup(e => {
vartest = e.target.value;
});
Ваша функция срабатывает только после того, как ваш элемент получит событие.
В то время, когда вы вызывали vartest
(вне вашей функции), его значение по-прежнему равно undefined
, потому что событие (которое фактически присваивает значение) сработает позже.
Создайте функцию getTargetsValues
и вызывайте ее при необходимости.
Вместо "keyup"
вы можете в конечном итоге прослушать событие "input"
:
// Cache your elements
const $targets = $(".target");
// Use this function to get an Array of inputs .target values
function getTargetsValues () {
return $targets.get().map(el => el.value);
}
$targets.on("input", function() {
console.info('in func: ' + getTargetsValues());
});
console.info('out of func: ' + getTargetsValues());
<input class = "target" type = "text" value = "1. target">
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
Это работает. Смотрите эту скрипку.