ReactJS 按键按下输入

Gab*_*pes 4 javascript input keypress reactjs

我想在 inputfield 上处理 keyPressDown (enter),这个函数有点工作,但我不能再输入任何东西了。

handleSubmit: function (e) {
    e.preventDefault();
    if (e.keyCode === 13) { console.log('hit enter'); }
    else { return false; }
  },
render: function(){
    return (
   <div className="addTask">
   <form className="questionsTask" autoComplete="off">
   <ol className="questions">
    <li>
    <input id="taskName" name="taskName" type="text" placeholder="What's your next task?" onChange={this.handleTask.name} onKeyDown={this.handleSubmit}/>
   </li> ....
Run Code Online (Sandbox Code Playgroud)

kno*_*ody 5

您需要处理onChange. 做类似的事情:

var TextInput = React.createClass({
    getInitialState: function() {
        return {text: ''};
    },
    inputSubmit: function() {
        console.log(this.refs.userInput.getDOMNode().value);
        this.setState({text: ''});
    },
    handleChange: function(e) {
        this.setState({text: e.target.value});
    },
    handleKeyDown: function(e) {
        if (e.keyCode === 13 ) {
            return this.inputSubmit();
        }
    },
    render: function() {
        return (<input value={this.state.text} ref="userInput" onChange={this.handleChange} onKeyDown={this.handleKeyDown}/>);
    }
});
Run Code Online (Sandbox Code Playgroud)

通过@spicyj(http://jsfiddle.net/spicyj/HdR6E/