【发布时间】:2019-09-23 02:57:10
【问题描述】:
我有一个小函数,我只允许输入数字。它在 IE 中运行良好,但我无法在 FireFox 或 Chrome 中运行。我在我的 HTML 页面的脚本标签中加载了这个 js 文件。
var numberOnly = function(evt) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode( key );
var regex = /[0-9]|\./;
if( !regex.test(key) ) {
theEvent.returnValue = false;
}
};
var wireElemToEvent = function(elemId, event, func){
var elem = document.getElementById(elemId);
if (typeof window.event !== 'undefined') {
elem.attachEvent("on" + event, func);
} else {
elem.addEventListener(event, func, true);
}
};
var wireEvents = function(){
wireElemToEvent("tbxQuantity", "keypress", numberOnly);
wireElemToEvent("tbxPhone", "keypress", numberOnly);
wireElemToEvent("tbxZip", "keypress", numberOnly);
};
window.onload = wireEvents;
Chrome 告诉我
file:///C:/Documents%20and%20Settings/xxx/Desktop/numbersonly/res/js/numbersonly.js:17Uncaught TypeError: Object #
has no method 'attachEvent'
知道我做错了什么吗?
【问题讨论】:
标签: javascript cross-browser dom-events