如何获得允许键中包含的键码图表上190的字符(。)句号?

时间:2016-12-10 15:47:15

标签: javascript function keycode

以下代码有效,但我无法将190作为可以允许的密钥的一部分。最终目标是让用户只能输入(0-9)和小数点(。)。

function isNumber(evt) {
  evt = (evt) ? evt : window.event;
  var charCode = (evt.which) ? evt.which : evt.keyCode;
  if (evt.which != 8 && evt.which != 0 
      && (evt.which < 48 || evt.which > 57) 
      && evt.charCode != 190) {
    return false;
  }                
  return true;
}

1 个答案:

答案 0 :(得分:1)

正如您在此网站http://www.asquare.net/javascript/tests/KeyCode.html上看到的,返回的字符代码与onKeyDown,onKeyPress和onKeyUp不同。

修改
使用jquery添加了这个的工作示例,但javascripts nativ keypress事件应该是相同的。

&#13;
&#13;
// with jQuery
function isNumber(evt) {
  evt = (evt) ? evt : window.event;
  var charCode = (evt.which) ? evt.which : evt.keyCode;
  if (evt.which != 8 && evt.which != 0 
      && (evt.which < 48 || evt.which > 57) 
      && evt.charCode != 46 // IMPORTANT keypress charCode 46 == ".",  String.fromCharCode(46) -> "."
                            ) {
    return false;
  }                
  return true;
}

$("input").keypress(function(e) {
  if (isNumber(e)) {
    result = "Is a number";
  } else {
    result = "Is not a number";  
  }
  console.log(result);
  $("#result").html(result);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text">
<div id="result">result</div>
&#13;
&#13;
&#13;