文本和键盘事件也是我们平常用的比较少的,在用户输入键盘的时候会触发键盘事件,回车的时候有可能会触发键盘和submit的文本事件;
键盘事件
键盘事件类型
keydown:在用户按下键盘上的任意键时触发,而且如果按住不放的话,会重复触发此事件。
keypress:当用户按下键盘上的字符键时触发,而且如果按住不放的话,会重复触发此事件。按下Esc键也会触发这个事件
keyup:当用户释放键盘上的键时会触发。
文本事件:文本事件只有一个textInput。这个事件是对keypress的补充,用意是在将文本显示给用户之前更容易拦截文本。在文本插入文本框之前会触发textInput事件。
html
<body>
<div id="myDiv">
请输入<input type="text"></input>
</div>
</body>
js
触发按下键盘事件
var div=document.getElementById("myDiv");
EventUtil.addHandler(div,"keydown",function(event){
event=EventUtil.getEvent(event);
alert("触发按下键盘事件");
});
触发按下键盘字符事件
var div=document.getElementById("myDiv");
EventUtil.addHandler(div,"keypress",function(event){
event=EventUtil.getEvent(event);
alert("触发按下键盘字符事件");
});
触发文本事件
var div=document.getElementById("myDiv");
EventUtil.addHandler(div,"textInput",function(event){
event=EventUtil.getEvent(event);
alert("触发文本事件");
});
触发释放键盘事件
var div=document.getElementById("myDiv");
EventUtil.addHandler(div,"keyup",function(event){
event=EventUtil.getEvent(event);
alert("触发释放键盘事件");
});
在用户按了一下键盘上的字符键时,首先会触发keydown事件,然后紧跟着是keypress事件,接着输入完成之后会触发textInput文本事件,当我们松开的时候会触发keyup事件;
键码
在发生keydown和keyup事件时,event对象的keyCode会包含一个代码,与键盘上一个特定的键对应,有的是数字,有的是对应的ASCII码值;
var div=document.getElementById("myDiv");
EventUtil.addHandler(div,"keydown",function(event){
event=EventUtil.getEvent(event);
alert("按下键盘"+event.keyCode);
});
字符编码:
我们可以用charCode获取按下键盘的字符类型;
String.fromCharCode:可以方法可以返回我们键盘事件所发生的值
var div=document.getElementById("myDiv");
EventUtil.addHandler(div,"keydown",function(event){
event=EventUtil.getEvent(event);
alert("按下键盘"+String.fromCharCode(event.keyCode));
});
inputMethod
在文本事件中有一个属性叫做inputMethod,表示把文本输入到文本框中的方式;
0:表示浏览器不确定是怎么输入的
1:表示使用键盘输入的
2:表示文本是粘贴进来的
3:表示文本是拖放进来的
4:表示文本是使用IME输入的
5:表示文本是通过在表单中选择一项输入的
6:表示文本是通过手写输入的
7:表示文本是通过语音输入的
8:表示文本是通过几种方法组合输入的
9:表示文本是通过脚本输入的
复合事件:
复合事件是指输入在键盘上找不到的字符时所发生的事件,例如有些字符需要二个键,或者多个键的时候,就会触发复合事件;
变动事件:
变动事件是DOM中某一部分发生变动的时候会触发该事件,例如插入节点,删除节点等;