Keyup事件会阻止Chrome中文本字段中的箭头键

时间:2016-05-04 16:09:14

标签: javascript jquery google-chrome

请在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

为什么呢?

2 个答案:

答案 0 :(得分: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="">

答案 1 :(得分:0)

在Chrome 50上为我工作。但无论如何,我建议更改此内容:

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

否则总是只有第一个'。'被取代。