如何解决在 contenteditable div 中按下 Enter 后不会触发 onInput
我在我的 react 组件中创建了一个 contenteditable div,当我在 div 内按下 Enter 并尝试输入一些东西时,onInput 函数没有被触发。这只是 Mozilla 的情况。此外,当我输入 enter 或 backspace 时,它可以工作,但如果我想输入一些普通字母,则它不起作用。 Tnx 寻求帮助:
<div
id={Constants.FREE_FORMULA__TEXTAREA_INPUT__ID}
contentEditable="true"
name="value"
className="slds-textarea formula-container"
type={Constants.FREE_FORMULA__TEXTAREA_INPUT__ID}
value={text}
onInput={(e) => {
this.handleOnChange(e);
}}
onPaste={e => this.handleOnPaste(e)}
onBlur={() => {
const textArea = document.getElementById(Constants.FREE_FORMULA__TEXTAREA_INPUT__ID);
textArea.focus();
}}
/>
解决方法
Sveto,StackOverflow 还没有给我发表评论的权限,所以很遗憾我不得不把它放到一个答案中。
您是否尝试过使用 onChange={(e) => this.handleOnChange(e)}
?
尽管 React 对 onInput 和 onChange 的处理几乎完全相同,但在我看来 onChange 更加一致和可持续。试试看,如果您发现代码有变化,请告诉我。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。