JavaScript输入时的键盘事件及文本事件使用

文本和键盘事件也是我们平常用的比较少的,在用户输入键盘的时候会触发键盘事件,回车的时候有可能会触发键盘和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中某一部分发生变动的时候会触发该事件,例如插入节点,删除节点等;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.duanlonglong.com/qdjy/591.html