Как мы можем получить значение val из keyup в jquery

#javascript #jquery #jquery-select2 #keyup

#javascript #jquery #jquery-select2 #keyup

Вопрос:

я хочу получить значение val из keyup в jquery

мой код :

 var vartest;

$( ".target" ).keyup(function() {
  vartest= this.value;
console.log('in func:'   vartest);
});


console.log('out of func:'   vartest);
 

но vartest не определен

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

1. Его работа. Посмотрите на эту скрипку .

2. смотрите Код обновления

3. нет, не работает

Ответ №1:

Ваша функция запускается только после того, как ваш элемент получает событие.
Во время вызова 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.log('in func: '   getTargetsValues());
});

console.log('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> 

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

1. я думаю, что это работает, но позвольте мне проверить, я не в офисе, спасибо

Ответ №2:

Я не уверен, что это то, что вам нужно, но если вы хотите получить значение ввода, где произошло событие, вы должны взять его из цели события:

 $(‘.target’).keyup(e => {
    vartest = e.target.value;
});