Javascript 仅将输入框限制为数字,数字键盘键不起作用
我需要你的帮助 javascript编码完美无瑕,达到了预期的效果,但由于某些原因,它不允许在输入框中键入数字键盘上的键。大多数用户会使用键盘上的numlock键输入数字。如何修改编码以允许键盘上单独数字键盘上的键正常工作Javascript 仅将输入框限制为数字,数字键盘键不起作用,javascript,Javascript,我需要你的帮助 javascript编码完美无瑕,达到了预期的效果,但由于某些原因,它不允许在输入框中键入数字键盘上的键。大多数用户会使用键盘上的numlock键输入数字。如何修改编码以允许键盘上单独数字键盘上的键正常工作 <!DOCTYPE html> <html> <body> <div> <input type="text" id="rownum"> </div
<!DOCTYPE html>
<html>
<body>
<div>
<input type="text" id="rownum">
</div>
<script type="text/javascript">
document.getElementById('rownum').onkeydown = function(e) {
var key = (window.event) ? event.keyCode : event.which;
alert(key);
if (key == 8) { // Delete key
return
}
else {
if ( isNaN( String.fromCharCode(key) ) ) return false;
}
}
</script>
</body>
</html>
document.getElementById('rownum')。onkeydown=function(e){
var key=(window.event)?event.keyCode:event.which;
警报(键);
如果(键==8){//删除键
返回
}
否则{
if(isNaN(String.fromCharCode(key)))返回false;
}
}
号码牌中的数字有不同的键码。其他键如delete键在普通键盘和numberpad中具有相同的键码,但键码8(代码中的键码)用于退格,而不是delete键。示例代码似乎无效。我运行它并得到“事件未定义”。此代码适用于:
document.getElementById('rownum').onkeydown = function(e) {
var key = e.keyCode || e.which; // <-- updated reference to event
alert(key);
if (key == 8) { // Delete key
return
}
else {
if ( isNaN( String.fromCharCode(key) ) ) return false;
}
};
document.getElementById('rownum').onkeydown=function(e){
var key=e.keyCode | | e.which;//证明支持array.indexOf(array):
Array.prototype.indexOf = function(obj, start) {
for (var i = (start || 0), j = this.length; i < j; i++) {
if (this[i] === obj) { return i; }
}
return -1;
}
它“完美无瑕”但却有缺陷?哦,真的。。。
document.getElementById('rownum').onkeydown = function(e) {
var key = (window.event) ? event.keyCode : event.which;
var keys = [8,37,39,46,96,97,98,99,100,101,102,103,104,105]
var x = (keys.indexOf(key) > -1)
if (x != true) {
if (isNaN(String.fromCharCode(key))) { return false }
}
}