首页 > 解决方案 > 我们如何从 jquery 中的 keyup 获取 val

问题描述

我想在 jquery 中从 keyup 中给出 val

我的代码是:

var vartest;

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


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

但 vartest 未定义

标签: javascriptjqueryjquery-select2keyup

解决方案


您的函数仅在您的元素收到事件时触发。
在您调用时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>


推荐阅读