如何在reactJS中获取keyCode
我得到的密钥代码未定义 我需要禁用空格键,同时输入密码,但我得到的密钥码为未定义如何在reactJS中获取keyCode,reactjs,Reactjs,我得到的密钥代码未定义 我需要禁用空格键,同时输入密码,但我得到的密钥码为未定义 blockSpace(e) { e.persist(); const key = e.keyCode; console.log("key", key); if (key === 32) { e.preventDefault(); } } 上面的控制台。日志(“键”,键)未定义 <GenericInputBox onChange ={this.blo
blockSpace(e) {
e.persist();
const key = e.keyCode;
console.log("key", key);
if (key === 32) {
e.preventDefault();
}
}
上面的控制台。日志(“键”,键)未定义
<GenericInputBox onChange ={this.blockSpace} />
我已经检查了类似的stackoverflow帖子,并在代码中包含了e.persist(),但仍然没有定义。
onKeyPress
e.keyCode始终是0
,并且e.charCode
具有正确的值。如果使用的是onKeyDown
,请在e.charCode
中输入正确的代码
blockSpace(e) {
e.persist();
const key = e.keyCode;
console.log("key", key);
if (key === 32) {
e.preventDefault();
}
}
<GenericInputBox onKeyPress={this.blockSpace} />
^^如果值上有空格,那么阻止默认值或任何逻辑onKeyDown解决了我的问题,其他逻辑是相同的-只是使用onKeyDown而不是onChange.onKeyPress对我也不起作用你能在调用blockSpace的地方添加HTML部分吗?@fahadtufail这与
onChange={this.blockSpace}一样
TryonKeyDown={this.blockSpace}
event来捕获keycode。更改事件在修改输入值后激发,因此即使它有一个对键的引用(它没有;有许多其他方法来更改输入值),它也无法阻止特定字符。请尝试输入或在onchange事件中从值中删除空格。
blockSpace(e) {
e.persist();
const value = e.target.value;
// check if value got a space anywhere
if (value.includes(' ') {
e.preventDefault(); // or whatever logic
}
}