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