我正在尝试获取用户在文本框中单击的位置的插入位置。我想在用户点击输入的位置添加某个文本。我试图在onFocus
的{{1}}方法中执行此操作。但是,input
总是给我e.target.selectionStart
。
0
感谢任何帮助
CodeSandbox https://codesandbox.io/s/6x623x50r
答案 0 :(得分:1)
不是获取光标位置值onFocus
事件,而是执行onMouseUp
事件。当输入被聚焦并且您在同一输入中的其他位置单击时,不会调用onFocus。
class Input extends React.Component {
constructor(props) {
super(props);
this.state = {
value: "hello"
};
}
onMouseUp = e => {
console.log(e.target.id);
console.log(e.target.selectionStart);
};
onChange = e => {
this.setState({
value: e.target.value
});
};
render() {
return (
<input
id="my-input"
onChange={this.onChange}
value={this.state.value}
onMouseUp={this.onMouseUp}
/>
);
}
}
获取selectionStart
onFocus事件时出现错误,您可以查看问题here