【发布时间】:2017-09-03 08:45:02
【问题描述】:
假设我有这个组件:
React.createClass({
getInitialState: function() {
return {pg: 0};
},
nextPage: function(){
this.setState({ pg: this.state.pg+1} )
},
render: function() {
var inputs = [ <input key={1} placeholder="one"/>,
<input key={2} placeholder="two"/>,
<input key={3} placeholder="three"/>]
if(this.state.pg === 1){
inputs = [ <input key={4} placeholder="four"/>,
<input key={5} placeholder="five"/>,
<input key={6} placeholder="six"/>]
}
return(
<div>
<h1>start here</h1>
{inputs}
<button onClick={this.nextPage.bind(this)}>next</button>
</div>
);
}
});
https://jsfiddle.net/69z2wepo/75909/
我的目标是建立一个非常简单的工作流程。无需鼠标即可编辑一个接一个的输入。流程是这样的
- 点击“从这里开始”设置“标签位置”
- 点击标签
- 输入一个值,点击tab
- 输入一个值,点击tab
- 输入一个值,点击tab
- 回车
但是,当我切换到下一页时,我需要手动单击“从这里开始”才能再次执行此操作。
无论如何我可以自动将标签位置移动到“从这里开始”吗? (在用户点击 Tab 之前,我不想关注第一个输入元素)
【问题讨论】:
-
您是否尝试过仅添加
tabindex属性? -
所有你需要做的就是做一个
document.addEventListener('keypress', handler)然后在处理函数中` if(e.keyCode === 9) {first input.focus()}` -
@lonewarrior556 here is a fiddle doing what you describe
-
@john-ruddell 想要回答吗?
-
@lonewarrior556 确定!刚刚给你一个答案:)
标签: javascript jquery html reactjs