我有一个输入字段。我想让 React 检查是否在此字段中按下了选项卡。如果是,则处理该字段的内容(例如 ajax 调用)。
getInitialState: function() {
return { name: "" };
},
handleChangeName: function(e) {
this.setState({name: e.target.value});
},
handleKeyUp: function(e) {
if (e.keyCode == 9) {
e.preventDefault();
alert("Execute ajax call after tab pressed");
}
},
<input type="text" value={this.state.name} onChange={this.handleChangeName}
onKeyDown={this.handleKeyUp} />
问题:
Tab 按键被拦截并执行后续代码,但Tab 字符被插入到输入文本字段中。我如何防止这种情况发生?
我尝试了preventDefault
, stopPropagation
, 的各种组合stopImmediatePropagation
。我可以得到没有进一步的字符被插入到输入文本字段的结果,但随后没有执行任何代码。
我错过了什么?