Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅将输入框限制为数字,数字键盘键不起作用_Javascript - Fatal编程技术网

Javascript 仅将输入框限制为数字,数字键盘键不起作用

Javascript 仅将输入框限制为数字,数字键盘键不起作用,javascript,Javascript,我需要你的帮助 javascript编码完美无瑕,达到了预期的效果,但由于某些原因,它不允许在输入框中键入数字键盘上的键。大多数用户会使用键盘上的numlock键输入数字。如何修改编码以允许键盘上单独数字键盘上的键正常工作 <!DOCTYPE html> <html> <body> <div> <input type="text" id="rownum"> </div

我需要你的帮助

javascript编码完美无瑕,达到了预期的效果,但由于某些原因,它不允许在输入框中键入数字键盘上的键。大多数用户会使用键盘上的numlock键输入数字。如何修改编码以允许键盘上单独数字键盘上的键正常工作

<!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 }

                }
            }