Dan*_*Dan 5 javascript reactjs
我有两个关于反应输入的问题。有什么办法可以使输入一旦达到maxLength时自动使焦点集中在下一个字段上,而无需使用jquery进行反应。
<form>
<input type="text" maxLength="4" />
<input type="text" maxLength="4" />
<input type="text" maxLength="4" />
</form>
Run Code Online (Sandbox Code Playgroud)
第二个问题是当type =“ text”时,如何使输入仅接受数字值?
为此,请使用 onChange 事件处理程序。当用户键入 MAX_LENGTH(4 个字符)时,焦点将设置到下一个元素。React.findDOMNode 获取与 React 组件对应的下一个 DOM 节点。DOM 节点上的 focus 方法设置焦点。
handleTextChange(e) {
if (e.target.value.length <= MAX_LENGTH) {
this.setState({ value: e.target.value });
}
if (e.target.value.length === MAX_LENGTH) {
React.findDOMNode(this.nextComponent).focus();
}
}
Run Code Online (Sandbox Code Playgroud)
组件 JSX 是:
<input value={this.state.value} onChange={this.handleTextChange} />
<input ref={c => this.nextComponent=c} />
Run Code Online (Sandbox Code Playgroud)
nextComponent 在 ref 中设置。React.findDOMNode 使用它this.nextComponent来获取下一个组件对应的 DOM 节点。
| 归档时间: |
|
| 查看次数: |
1889 次 |
| 最近记录: |