2016-09-27 71 views
0

当我在输入字段(58.10)改变为(58.1)时,一旦移除“0”,光标就移到5后面。我期望它在“1”旁边。当值改变时,插入符号向左端移动

阵营:

// Props 
var data = [ 
    {unit_amount: 58.10, id: 1}, 
    {...}, 
    {unit_amount: 25.99, id: 3}, 
] 

_valueChange(i, e){ 
    e.preventDefault(); 
    var obj = this.props.data; 
    var num = obj.find(p => i === p.id); 

    num.unit_amount = e.target.value; 
}, 

// Render 

var lineItems = this.props.data.map(function(l){ 
    return(
    <tr key={l.id}> 
    <input type="number" value={l.unit_amount} onChange={this._valueChange.bind(this, l.id)} /> 
    </tr> 
) 
}) 

值改变确定,但光标(“管道”)进入到左一旦极端,我打的退格键一次。有任何想法吗?

回答

0

可以在设置值之后设置光标位置,只需找到字符串的长度并将光标位置设置为字符串的长度即可。

查看这篇文章了解您寻找的API。 Get caret position in HTML input?

+0

谢谢。这是唯一的选择吗?更多的代码行? – Sylar

+0

好问题,过去我也有过类似的问题,我似乎记得像这样解决问题。这就是我现在的想法... –

+0

我看到了这个问题。这是因为当我改变这个值的时候,整个状态被取代了。 – Sylar