Javascript输入onkeypress功能不起作用

时间:2017-11-03 14:43:49

标签: javascript onkeypress

我把脚本放在头标记中

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。 但是当我在javascript输入中创建id =&#39; odbiorca&#39;如果我尝试使用相同代码的onkeypress

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

它不想工作。有什么问题?

2 个答案:

答案 0 :(得分:0)

问题在于你错误地使用了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

答案 1 :(得分:0)

脚本的最后一行应该写成:

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

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