我正在开发一个包含许多文本字段(如用户 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/