以下代码有效,但我无法将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;
}
答案 0 :(得分:1)
正如您在此网站http://www.asquare.net/javascript/tests/KeyCode.html上看到的,返回的字符代码与onKeyDown,onKeyPress和onKeyUp不同。
修改强>
使用jquery添加了这个的工作示例,但javascripts nativ keypress事件应该是相同的。
// 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;