2016-05-04 8 views
6

にテキストフィールドに、矢印キーを防ぎ:KeyUpイベントは、Google Chromeブラウザ上でこれを確認してくださいクローム

jQuery('#tien_cong').keyup(function(e) { 
 
    jQuery(this).val(jQuery(this).val().replace(".", ",")); 
 
    var sum = 0; 
 

 
    var tien_cong = jQuery('#tien_cong').val(); 
 
    tien_cong = tien_cong.replace(/,/g, ''); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input class="textfield" id="tien_cong" type="text" data-required="" data-type="text" name="tien_cong" placeholder="" value="" size="">

は私が,.を交換しようとすると、テキストボックスに.を持つユーザーの種類は、代。

Chromeブラウザで、キーボードの左カーソルボタンを押すと、と移動できません。

enter image description here

なぜ?

+1

使用しているChromeのバージョンは何ですか? – Dom

+0

バージョン49.0.2623.112 m – John

+1

ええ、戻るボタンではなく、キーボードの左カーソルボタンを使用しています。これは、あなたがクロムを置き換えるときにキャレットの位置を失うために起こります。私はそれを修正する方法を知らない。 Chromeはいつものように吸う。 –

答えて

3

今は、キーを押すたびに入力が更新されています。文字が '。'かどうかを調べるテスト。置換する前にスクリプトが実行されないようにし、カーソルがリセットされないようにします。

jQuery('#tien_cong').keyup(function(e) { 
 
    if(e.which === 190) { 
 
    jQuery(this).val(jQuery(this).val().replace(/\./g,",")); 
 
    }  
 
    
 
    var sum = 0; 
 

 
    var tien_cong = jQuery('#tien_cong').val(); 
 
    tien_cong = tien_cong.replace(/,/g, ''); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input class="textfield" id="tien_cong" type="text" data-required="" data-type="text" name="tien_cong" placeholder="" value="" size="">

0

クローム50の私のために動作しますが、とにかく、私はこれを変更することをお勧めします: ''

jQuery(this).val(jQuery(this).val().replace(/\./g,",")); 

としてそれ以外の場合は、常に最初の交換される。

+0

ありがとうございます。私のコードを試すことができますか?最初のものだけでなく、すべての '。'が変更されます。 – John

+0

*文字列*を最初のパラメータとして渡すと、すべてのインスタンスが置き換えられます。正規表現を渡すと、 'g'フラグを使うと全てが置き換えられます。 –

関連する問題