扩展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;

  }

  });