如何将键码图表上的 190 字符 (.) 句号包含在允许的键中?
How to get the character (.) full stop which is 190 on the keycode chart to be included in the allowable keys?
下面的代码有效,但我无法获得 190 作为允许的密钥的一部分。最终的objective是让用户只能输入(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;
}
正如您在本网站上看到的那样http://www.asquare.net/javascript/tests/KeyCode.html返回的字符代码与 onKeyDown、onKeyPress 和 onKeyUp 不同。
编辑:
使用 jquery 添加了此工作示例,但对于 javascripts nativ 按键事件应该是相同的。
// 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);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text">
<div id="result">result</div>
下面的代码有效,但我无法获得 190 作为允许的密钥的一部分。最终的objective是让用户只能输入(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;
}
正如您在本网站上看到的那样http://www.asquare.net/javascript/tests/KeyCode.html返回的字符代码与 onKeyDown、onKeyPress 和 onKeyUp 不同。
编辑:
使用 jquery 添加了此工作示例,但对于 javascripts nativ 按键事件应该是相同的。
// 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);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text">
<div id="result">result</div>