首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当与React一起使用时,如何在keyPress上检测“Enter”键

当与React一起使用时,如何在keyPress上检测“Enter”键
EN

Stack Overflow用户
提问于 2017-07-07 05:13:05
回答 2查看 15.8K关注 0票数 3

我正在使用ReactJs开发我的应用程序。通过处理onKeyPress事件,当按下Enter时,我正在尝试提交一个输入文本。它检测其他输入,但不检测enter。我尝试过不同的方法-- event.keyevent.charCodeevent.keyCodeevent.which……似乎什么都不起作用。

代码语言:javascript
运行
复制
React.createElement("input", {tabIndex: "1", onKeyPress: this.handleKeyPress, onChange: this.handleChange, 
                           placeholder: "ex: 1,10,15"}), 

handleChange: function (event) {
        this.setState({userInputBuckets: event.target.value});
    },
handleKeyPress: function (event) {
        if (event.charCode == 13) {
            event.preventDefault();
            this.props.table.handleSubtotalBy(this.props.columnDef, this.state.userInputBuckets);
        }
    },

我也尝试过onKewDown处理,它会检测到正确的键,但即使它将event.keyCode == 13求值为true,它也不会执行if块。

EN

回答 2

Stack Overflow用户

发布于 2017-07-07 06:11:50

e.stopPropagataionhandleSubtotalBy迁移到handleKeyPress

代码语言:javascript
运行
复制
handleKeyPress(event) {
  if (event.charCode == 13) {
    event.preventDefault();
    event.stopPropagation();
    this.props.table.handleSubtotalBy(this.props.columnDef, this.state.userInputBuckets);
  }
}


handleSubtotalBy(columnDef, partitions) { 
  const subtotalBy = this.state.subtotalBy || [];
  // ...
}
票数 5
EN

Stack Overflow用户

发布于 2017-12-01 04:13:00

Given answer不完整,

使用

代码语言:javascript
运行
复制
var code = event.keyCode || event.charCode

要支持所有浏览器,请执行以下操作:

除此之外,给出的答案是正确的。收到。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44958938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档