Javascript 输入 onkeypress 功能不起作用

Javascript input onkeypress function do not work

我把脚本放在head标签里

function check(e, regexp) {
    if(navigator.userAgent.indexOf('Gecko') != -1) {
        charCode = e.which;
    } else {
        charCode = e.keyCode;
    }
    if(charCode > 31) {
        znak = String.fromCharCode(charCode);
        return regexp.test(znak);
    }
}

当我在输入中使用这个函数时

<input id='pole2' name=nip style='WIDTH: 300px;' onkeypress='return check(event, /[0-9-]/i);'>

它与 HTML 配合得很好。 但是当我使用 id='odbiorca' 在 javascript 输入中创建时,如果我尝试使用具有相同代码的 onkeypress

document.getElementById("odbiorca").onkeypress = function() {myfunction()};
function myFunction(){
    return check(event, /[0-9- ]/i);
}

它不想工作。怎么了?

问题是你拼错了 myFunction:

document.getElementById("odbiorca").onkeypress = function() {myfunction()};

function myFunction(){
    return check(event, /[0-9- ]/i);
}

myFunction 是大写的 F,但你用小写的 f 调用它(myfunction 而不是 myFunction),除此之外它应该可以工作!

编辑:下次尝试先检查您的浏览器控制台。您可能已经看到非常明显的错误:

Uncaught ReferenceError: myfunction is not defined
at HTMLInputElement.document.getElementById.onkeypress

脚本的最后一行应该这样写:

document.getElementById("odbiorca").onkeypress = function(event) {return check(event, /[0-9- ]/i);}

如您所见,错字并不是主要问题。为其他人保留此解决方案。 感谢 Merijn 对浏览器控制台的建议。