如何在js keypress中插入点而不是逗号

Zap*_*ood 0 javascript asp.net

在我的网站上,我有一个文本框,其中包含由点分隔的货币金额.用户有时会在小键盘上按下点,并在文本框中插入昏迷.如何将其转换为点?我试图在按键事件中这样做,但没有管理让它工作.

Jan*_*fer 6

<input type='text' onkeypress='return check(this,event);'>

function check(Sender,e){
  var key = e.which ? e.which : e.keyCode;
  if(key == 44){
     Sender.value += '.';
     return false;
  }
}
Run Code Online (Sandbox Code Playgroud)

更新:如果您在输入框中的任何位置键入,这应该有效

function check(Sender,e){
  var key = e.which ? e.which : event.keyCode;
  if(key == 44){
     if (document.selection) { //IE
       var range = document.selection.createRange();
           range.text = '.';
     } else if (Sender.selectionStart || Sender.selectionStart == '0') { 
      var start = Sender.selectionStart;
      var end   = Sender.selectionEnd;
      Sender.value = Sender.value.substring(0, start) + '.' +
           Sender.value.substring(end, Sender.value.length);
      Sender.selectionStart = start+1;
      Sender.selectionEnd   = start+1;     
     } else {
      Sender.value += '.';
     }
     return false;
   }
}
Run Code Online (Sandbox Code Playgroud)