<script type="text/javascript">
function numbersonly(e){
var unicode=e.charCode? e.charCode : e.keyCode
if (unicode!=8){ //if the key isn't the backspace key (which we should allow)
if (unicode<65||unicode>90) //if not a Capital Alphabet
return false //disable key press
}
}
</script>
<form>
<input type="text" size=18 onkeyup="return numbersonly(event)">
</form>
此代码工作正常。但IE不支持charcode。在Keycode中,65到90范围包括大写和小写字母。如何解决这个问题?
答案 0 :(得分:1)
在case
之内必须检查许多条件的简单方法不会处理它,
检查大写锁定是否开启
使用此功能,
function isCapslock(e){
e = (e) ? e : window.event;
var charCode = false;
if (e.which) {
charCode = e.which;
} else if (e.keyCode) {
charCode = e.keyCode;
}
var shifton = false;
if (e.shiftKey) {
shifton = e.shiftKey;
} else if (e.modifiers) {
shifton = !!(e.modifiers & 4);
}
if (charCode >= 97 && charCode <= 122 && shifton) {
return true;
}
if (charCode >= 65 && charCode <= 90 && !shifton) {
return true;
}
return false;
}
来自http://dougalmatthews.com/articles/2008/jul/2/javascript-detecting-caps-lock/
<强>另外强>
在jquery中使用e.which
。它们会为所有浏览器规范化此值。
此外,您可以查看e.shiftKey
。
来源Using e.keyCode || e.which; how to determine the differance between lowercase and uppercase?