扩展jQuery键盘事件的几个基本方法(练习jQuery插件扩展)

文件名:jquery.hy.key.js

/* ================================================================================
         Desc: 扩展对键盘事件的方法
  
         Called by:   
               
         Auth: 大气象
         Date: 2009-10-30
 ================================================================================
         Change History
 ================================================================================
         Date:        Author:                Description:
         --------    --------            -------------------
    
 ================================================================================
 Copyright (C) 1992-2009 Hongye Corporation
 ================================================================================
 
 预备知识
 1.数字0键值48..数字9键值57
 2.a键值97..z键值122;A键值65..Z键值90
 3.+键值43;-键值45;.键值46;退格8;tab键值9;
 4.event在ie中是全局的,在firefox是临时对象,需要传递参数
*/

jQuery.extend({
    
/*===========================================================================
      功能描述:取得按键的值
      调用方法:
      jQuery.getKeyNum(event);
    
*/
    getKeyNum:
function(e){
        
var keynum;
        
if(window.event){ // IE
            keynum = event.keyCode;
        }
        
else if(e.which){ // Netscape/Firefox/Opera
            keynum = e.which;
        }
        
return keynum;
    },
    
/*===========================================================================
      功能描述:判断是否是整数,限制编辑框只能输入数字
      调用方法:
      <input type="text" onkeypress="return jQuery.isInt(event);" />
      待解决问题:
      firefox下tab键不起作用。
    
*/
    isInt:
function(e){
        
var keynum = this.getKeyNum(e);
        
if(keynum >= 48 && keynum <= 57 || keynum == 8){//firefox下退格需判断8
            return true;
        }
        
return false;
    },
    
/*===========================================================================
      功能描述:判断是否是小数,限制编辑框只能输入数字,只能输入一个小数点。
      调用方法:
      <input type="text" onkeypress="return jQuery.isFloat(this,event);" />
    
*/
    isFloat:
function(txt,e){
        
var keynum = this.getKeyNum(e);
        
if(keynum == 46){//输入小数点
            if(txt.value.length == 0){
                
return false;
            }
else if(txt.value.indexOf('.'>= 0){
                
return false;
            }
else{
                
return true;
            }
        }
        
if(this.isInt(e)){
            
return true;
        }
        
return false;
    }
});
posted @ 2009-10-30 10:13  大气象  阅读(1161)  评论(2编辑  收藏  举报
http://www.tianqiweiqi.com