javascript - 输入键后清除文本区域

标签 javascript reactjs

我想在按下回车键后清除文本区域的内容。然而,当按下回车键时,文本区域被清除但回车键仍然存在(新行)。我怎样才能解决这个问题?

constructor(){
    this.state = { text : '' }
}

keypress(e){ 
   if(e.key == 'Enter'){
      this.setState({
        send_message: ''
      })
   }
}

<textarea value={this.state.text} placeholder="Text" rows="1" className="form-textarea typing-area" onKeyPress={this.keypress.bind(this)}></textarea>

最佳答案

当键为“Enter”时,您可以使用event.preventDefault:

class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = { text : '' }
    this.handleChange = this.handleChange.bind(this);
    this.keypress = this.keypress.bind(this);
  }
  
  handleChange(event) {
    this.setState({text: event.target.value});
  }
  
  keypress(e){ 
    if(e.key === 'Enter'){
      e.preventDefault();
      this.setState({
        send_message: this.state.text,
        text: '',
      });
    }
  }
  render() {
    return (
      <div>
        <textarea 
          value={this.state.text} 
          placeholder="Text" 
          rows="1" 
          className="form-textarea typing-area" 
          onChange={this.handleChange}
          onKeyPress={this.keypress} 
        />
        <pre>{JSON.stringify(this.state, null, 2)}</pre>
      </div>
    );
  }
}

ReactDOM.render(<App />, document.getElementById('app'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="app"></div>

关于javascript - 输入键后清除文本区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40606080/

相关文章:

javascript - self 反射(reflection)问卷: providing three different scores for a quiz

javascript - 递归数组问题

css - 如何在 react 应用程序中为 css 中的伪元素获取 Font Awesome 图标

javascript - 想要 html 模式属性在不点击提交按钮的情况下工作

javascript - Meteor JS - 动态扫描文件夹并添加到集合中

javascript - 隐藏和显示 div 不起作用,元素更改其属性当我使用 console.log() 但不显示

javascript - 创建 React App 语法错误 : Unexpected Token

javascript - Uncaught Error : Invariant Violation: findComponentRoot(. .., ...$110) : Unable to find element. 这可能意味着 DOM 意外发生了变化

reactjs - 在单个 js 文件中创建的多个表单。如何在 ant design 中验证表单提交的单个表单字段验证?

javascript - JS 正则表达式仅适用于第一个字母,但如果单词只有两个字母,则保持 AND 数字不变