Reg*_*ins 8 javascript reactjs
我有一个控制输入,最初显示的值.我已将该输入设置为autoFocus,但是当我希望它在最后出现时,光标出现在输入的开头.我理解这可能是因为autoFocus是在值之前添加的,但我不是100%肯定.
在输入字段结束时完成光标初始化的最佳方法是什么?
var Test = React.createClass({
getInitialState: function() {
return {
teamId: 'fdsfds'
};
},
render: function() {
return (
<input type="text" autoFocus value={this.state.teamId} onChange={this.setTeamId} />
);
},
setTeamId: function(event) {
this.setState({ teamId: id });
},
});
ReactDOM.render(
<Test />,
document.getElementById('container')
);
Run Code Online (Sandbox Code Playgroud)
Ted*_* A. 21
一个解决方案
<input
type="text"
autoFocus
value={this.state.teamId}
onChange={this.setTeamId}
onFocus={function(e) {
var val = e.target.value;
e.target.value = '';
e.target.value = val;
}}
/>
Run Code Online (Sandbox Code Playgroud)
https://jsfiddle.net/o3s05zz4/1/
适应这个答案:https://stackoverflow.com/a/2345915/1589521
这实际上有效:
componentDidMount() {
const input = this.input;
const length = input.value.length;
input.focus();
input.setSelectionRange(length, length);
}
render() {
return (
<input ref={ref => this.input = ref} ... >
)
}
Run Code Online (Sandbox Code Playgroud)
附言。如果您需要支持 IE8 及更低版本,则需要使用 IE 特定的检查。
| 归档时间: |
|
| 查看次数: |
7873 次 |
| 最近记录: |