【发布时间】:2017-07-08 06:36:22
【问题描述】:
我在单击删除时动态地将一个值传递给我的输入字段(以编辑最后一个输入条目)。
我可以看到,在 Chrome 中,一旦输入值被渲染,光标就会显示在单词的开头,而在 Safari 和 Firefox 中,光标会出现在值的末尾,但最后一个字母会被删除。
我怎样才能始终看到光标在末尾而不删除最后一个字母(除非我按两次退格键)?
tagEvent(e) {
const tag = this.text.value;
const tagGroup = tag.split(" ");
const tiles = this.props.tiles;
const hasTiles = Object.keys(tiles).length > 0;
if(e.keyCode === 32 || e.keyCode === 13){
e.preventDefault();
tagGroup.map(tag => this.props.addTile(tag));
this.tagForm.reset();
}
if(e.keyCode === 8 && hasTiles && tag === '' ) {
this.props.editLastTile();
this.tagForm.reset();
}
}
render() {
return (
<div className="input-wrapper">
<form ref={(input) => this.tagForm = input}>
<input ref={(input) => this.text = input}
type="text"
name="new-item"
placeholder="type and press space"
autoComplete="off"
defaultValue={this.props.value}
onKeyDown={(e) => this.tagEvent(e)} />
</form>
</div>
)
}
非常感谢您的帮助!
【问题讨论】:
标签: javascript reactjs