javascript - 将 <input oninput= ... 与文本框中的当前值一起使用

标签 javascript html reactjs

我的 React 组件中有一个简单的 HTML 输入标签,定义如下:

<input type="text" onInput={(value) => {
                search(value);
                return value;
            }}/>

通过使用 oninput , 我希望调用 search方法,当文本框中的值发生变化时,以文本框中的当前值作为参数。 search方法在同一个组件中这样定义:

const search = _.debounce((value) => {
                    doSomething(value);
                 }, 500);

当我在 Chrome Dev Tools 中调试时,我看到 value具有以下值,而不是文本框中的当前值:

[[Handler]]: Object
[[Target]] : SyntheticEvent
[[IsRevoked]] : false

我做错了什么?如何调用搜索并将文本框中的当前值作为参数提供给它?在线实例展示oninput<input type="text" oninput="myFunction()">一样被使用, 但它们没有显示如何将文本框中的值作为输入传递给在 oninput 上调用的函数事件。

最佳答案

onInput 函数的参数是一个 JavaScript Event 对象。要提取它的值,你必须首先将输入框的值绑定(bind)到一些东西上:

<input
  type="text"
  value={this.state.value}
  onInput={this.handleSearch}
/>

然后在您的组件方法中,使用 event.target 提取此值,这允许您查看 DOM 元素属性(我们需要 value 属性):

handleSearch(event) {
  this.setState({value: event.target.value});
  this.search(event.target.value); // Or wherever your search method is
}

编辑:重命名 search => handleSearch 以避免混淆 :)

关于javascript - 将 &lt;input oninput= ... 与文本框中的当前值一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52283222/

相关文章:

javascript - 根据类名更改 vue.js 中的背景颜色

javascript - 即使我没有显式使用 React,为什么也需要 import React 语句?

JavaScript 在粘贴事件上获取剪贴板数据(跨浏览器)

javascript - 如何检查加载的 Javascript 代码的完整性

html - 删除网站上的 CSS 空间

html - 将 div 显示为模态弹出窗口

javascript - ReactJS:最大更新深度超出错误

reactjs - 如何在 TailwindCSS 中动态更改图像作为背景?

javascript - 通过 jQuery 申请时出现 "width"问题

Javascript将字符串中每个单词的第一个字母大写