我把脚本放在头标记中
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);
}
它不想工作。有什么问题?
答案 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对浏览器控制台的建议。