2016-09-27 7 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> 
) 
}) 

値は、[OK]をクリックして変更が、カーソル(「パイプ」)は、私は一度バックスペースボタンを押したら左極端に行きます。何か案は?

答えて

0

値を設定した後にカーソル位置を設定することができます。文字列の長さを見つけ、カーソル位置を文字列の長さに設定することができます。

あなたが探しているAPIについてこの投稿をチェックしてください。 Get caret position in HTML input?

+0

ありがとうございました。それは唯一の選択肢ですか?より多くのコード行? – Sylar

+0

良い質問ですが、私は過去に同様の問題を抱えていました。それは今私のアイデアだよ... –

+0

私は問題を見る。それは、値を変更すると状態全体が置き換えられるからです。 – Sylar

関連する問題