Firefox没有处理keyCode's.它在调试器中将变量显示为矩阵

Firefox is not processing keyCode's. It displays the variables as a matrices in debugger

本文关键字:调试器 变量 显示 处理 keyCode Firefox      更新时间:2023-09-26

此代码在Edge和Chrome等其他浏览器上运行良好,但由于某些原因,Firefox不想检测keyCode中的值。

注意:我使用了调试器,当我按下前面的示例"2"时,它的keychar应该在调试器监视列表上是2,但它给了我一个wierd矩阵符号"[00]";

它的作用:防止用户输入任何不是数字0-9 的字符

这是我的代码:

function keyHandlerForID(e)
{
    var keycode = e.keyCode;
    var keychar = String.fromCharCode(keycode);
    if(keychar < '0' || keychar > '9')
    {
        e.preventDefault();
    }
}
function start()
{
    document.getElementById("studentID").addEventListener("keypress", keyHandlerForID, false);
}
window.addEventListener("load",start,false);

就像我说的,这是我的脚本,但它适用于除Firefox之外的所有浏览器。

您需要使用whichcharCode属性:

function keyHandlerForID(e)
{
    var keycode = e.which || e.charCode || e.keyCode;
    var keychar = String.fromCharCode(keycode);
    if(keychar < '0' || keychar > '9')
    {
        e.preventDefault();
    }
    console.info(e, keycode, keychar)
}