1、用户同时按下两个按键,如何判断是哪两个?
if ((window.event.ctrlKey)&&(window.event.keyCode==49))
alert("您按下了CTRL+1键");
所以如果是获取类似shift、Control、Alt 等,可在JS中用“window.event.shiftKey”、“window.event.ctrlKey”、“window.event.altKey” 代替。
特别需要注意的是:Internet Explorer/Chrome 浏览器使用 event.keyCode 取回被按下的字符,而 Netscape/Firefox/Opera 等浏览器使用 event.which。
2、如何在获取键值和按键名称之间切换
一般情况下,按键转化为键值和键值转化为按键字符串的方法分别为:e.keyCode 、 String.fromCharCode()
window.document.onkeydown = function(e){
var keynum = window.event ? e.keyCode : e.which;//通过判别浏览器,获得键值,数字形式的
var keychar = String.fromCharCode(keynum);//将数字形式的键值转化为真实的按键
alert(keynum+':'+keychar);
}
3、屏蔽alt+→操作
if ((window.event.altKey)&&
((window.event.keyCode==37)|| //屏蔽 Alt+ 方向键 ←
(window.event.keyCode==39))){ //屏蔽 Alt+ 方向键 →
alert("不准你使用ALT+方向键前进或后退网页!");
event.returnValue=false;
}
4、JavaScript中Event.returnValue属性
var charCode=event.keyCode;
if(charCode<48||charCode>75)
{
alert("对不起,你输入的不是数字字符!");
event.returnValue=false;
}
<textarea name="textarea" onKeyPress="shijian()"></textarea>
该属性是设置或获取事件的返回值。Event对象的returnValue属性的值一般是true,即脚本处理完自己的工作后由元素处理事件。
通过该属性可以取消事件处理程序中调用函数的默认操作。
如果没有event.returnValue=false;这句填写的字符不是数字也会在文本框显示。
加上这句,如果不是数字就不会在文本框显示。代码会执行完,但是事件的操作不会继续下去了。