zoukankan      html  css  js  c++  java
  • Js监听键盘事件

    表单提交的时候大多数用户都习惯用回车键来进行提交,页面接受回车键的处理如下:

    注意:

    if(navigator.userAgent.indexOf("MSIE")>0)  {          
     //IE           document.onkeydown=function(){
            if(13 == event.keyCode){
              alert('browser is ie and enter key down');
            }
          } }else{  
     //非IE           window.onkeydown=function(){
            if(13 == event.keyCode){
              alert('browser is not ie and enter key down');
            }

          } }
    附常用功能键 
    值 描述 

    8 BACKSPACE 键
    9 TAB 键
    13 ENTER 键
    16 SHIFT 键
    17 CTRL 键
    20 CAPS LOCK 键
    27 ESC 键
    32 SPACEBAR 键
    33 PAGEUP 键
    34 PAGEDOWN 键
    35 END 键
    42 PRINT SCREEN 键
    46 DEL 键
    144 NUM LOCK 键


    判断方法:
      
       在填写表单时,习惯性会按下回车键,这将导致表单提交,很不好,这里介绍一个方法截获它。
      
        其实很简单,只要在想截获的区域增加Onkeydown事件函数,并在执行函数中写下如下语句:
      
        if (window.event.keyCode==13) window.event.keyCode=0
      
        这样就取消回车键了
      
        如果想模拟Tab键,只要写成
      
        if (window.event.keyCode==13) window.event.keyCode=9
      
        就行了,它会跳到另一个元素上。


    键盘事件:
       
      名称 说明 
      onkeypress
       这个事件在用户按下并放开任何字母数字键时发生。系统按钮(例如,箭头键和功能键)无法得到识别。
       
      onkeyup
       这个事件在用户放开任何先前按下的键盘键时发生。
       
      onkeydown
       这个事件在用户按下任何键盘键(包括系统按钮,如箭头键和功能键)时发生。


       在使用JavaScript做WEB键盘事件侦听捕获时,主要采用onkeypress、onkeydown、onkeyup三个事件进行出来。该三个事件的执行顺序如下:onkeydown -> onkeypress ->onkeyup。在一般情况下,采用三种键盘事件均可对键盘输入进行有效的响应。当在实际使用中,会发现这几者有些不同的差别。
      
      onkeypress事件不能对系统功能键(例如:后退、删除等,其中对中文输入法不能有效响应)进行正常的响应,onkeydown和onkeyup均可以对系统功能键进行有效的拦截,但事件截获的位置不同,可以根据具体的情况选择不同的键盘事件。
       由于onkeypress不能对系统功能键进行捕获,导致window.event对象的keyCode属性和onkeydown,onkeyup键盘事件中获取的keyCode属性不同,主要表现在onkeypress事件的keyCode对字母的大小写敏感,而onkeydown、onkeyup事件不敏感;onkeypress事件的keyCode无法区分主键盘上的数字键和付键盘数字键的,而onkeydown、onkeyup的keyCode对主付键盘的数字键敏感。 
  • 相关阅读:
    用汇编的眼光看c++(之模板函数) 四
    从B树、B+树、B*树谈到R 树 四
    how to locate dll in native c++ world / dotnet world?
    GAC和sidebyside
    ARM VS Intel
    关于dotnet下的encoding
    synchronization objects for interprocess synchronization and multithreadiing
    [remote debug]WinDBG 技巧: 如何用WinDBG远程调试程序
    [tip]transparent bmp
    Review: functor / function object
  • 原文地址:https://www.cnblogs.com/52XF/p/3755196.html
Copyright © 2011-2022 走看看