Javascript 不适用于 firefox 和 IE,但适用于 chrome

标签 javascript html firefox google-chrome

我正在开发一个包含许多文本字段(如用户 ID 和用户名)的 HTML 页面,我在单独的 .js 文件中添加了这样的 javascript 代码

function CommonKeyPressIsAlpha(evt){
    var charCode = (evt.which) ? evt.which : event.keyCode
    if ((charCode > 64 && charCode < 91) || (charCode > 96 && charCode < 123)){
        document.getElementById("errordisp").innerHTML = "";
        return true;
    }else{
        document.getElementById("errordisp").innerHTML = "Please enter a valid name!";
        return false;
    }
}

每当用户在用户名文本字段中键入时,我都会调用此函数来验证用户是否仅键入字符。我在用户名文本字段中调用此函数:

onkeypress="return CommonKeyPressIsAlpha(evt);"

它在 chrome 中可以正常工作,但在 firefox 和 IE 中却不行,这是什么问题?

最佳答案

您需要将 event 传递给 onkeypress 属性中的处理程序:

onkeypress="return CommonKeyPressIsAlpha(event);"

这适用于所有主流浏览器,但依赖于在属性中使用 event 而不是 evt。我已经写了关于它如何在 SO 上工作的细节 before .

关于Javascript 不适用于 firefox 和 IE,但适用于 chrome,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6058339/

相关文章:

javascript - 在 Javascript 中将字符串转换为 html 标签

php - 选择一个选择的项目

javascript - 在 FireFox 中测量浏览器回流的最佳可用工具是什么?

javascript - 访问我无法控制的特定页面时执行 JavaScript

javascript - 使用 Javascript 或 Django 进行模板化?

javascript - 视口(viewport)问题/无滚动

javascript - 让我的不和谐机器人在特定时间发送消息

html - 使用 HTML/CSS GUI 在 Ubuntu 上开发 native 应用程序?

javascript - 火狐安全模式有什么作用?

Javascript 函数没有从 typescript 中调用