Javascript中利用window.event.keyCode 实现金融文本框禁用非法输特效!

主要就是为了监听键盘按下的是哪个键,并且转成ASCII码;

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>window.event.keyCode</title>
</head>
<body onkeydown=" alert(window.event.keyCode)">
    <input id="txtCode" type="text" />
</body>
</html>

 

那么如何用回车代替小键盘的回车呢?首先我们要知道,回车的ASCII码是13 ,TAB键的ASCII码是9那就好办啦;

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>使用回车代替TAB键</title>
</head>
<body onkeydown="if(window.event.keyCode==13){ window.event.keyCode=9}">
    <input id="txtCode" type="text" />
    <input id="txtCode2" type="text" />
</body>
</html>

 

在上面的代码中我们使用了keyCode来实现回车代替TAB键,只是简单的做了一个判断,如果当按下的是回车(13),我们就把TAB(9)的值赋给它(骗骗计算机),这些小小的细节积累起来,也是一批不小的财富吧!

 

 下面接着写点东西,算是一个完整的示例吧;一个金融软件中文本框只能输入数字,和方向键,删除键等(代码中不是很严谨,仅供参考)

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>金融软件文本框禁用非法字符特效-2011-04-26</title>
    <style type="text/css">
        .ime
        {
            ime-mode: disabled; /**只对IE有效,禁用输入法切换**/
            width:300px;
        }
    </style>
    <script language="javascript" type="text/javascript">

        function isValiNum(k) {
            return (k == 9 || k == 13 || k == 46 || k == 8 || k == 189 || k == 190 || k == 110 || (k >= 48 && k <= 57) || (k >= 96 && k <= 105) || (k >= 37 && k <= 40));
        }

        function numKeyDown() {
            var k = window.event.keyCode;
            //判断输入字符是否合法;调用isValiNum函数;
            return isValiNum(k);
        }

        function numPaste() {
            //从剪切板中获取数据;
            var text = window.clipboardData.getData("Text");
            for (var i = 0; i < text.length; i++) {
                var asc = text.charCodeAt(i);   //转成ASCII值;
                if (!isValiNum(asc)) {
                    return false;
                }
            }
        }

        //自动给输入的数据加逗号;
        function commafy(n) {
            var re = /\d{1,3}(?=(\d{3})+$)/g;
            var n1 = n.replace(/^(\d+)((\.\d+)?)$/, function (s, s1, s2) { return s1.replace(re, "$&,") + s2; });
            return n1;
        }
    </script>
</head>
<body>
    <input id="txtCode" type="text" class="ime" onpaste="return numPaste()" onkeydown="return numKeyDown()" onfocus="this.style.textAlign='left'; this.value=this.value.replace(/,/g,'');" onblur="this.style.textAlign='right';this.value=commafy(this.value)" />
</body>
</html>

 

 

时间: 2024-09-21 22:51:58

Javascript中利用window.event.keyCode 实现金融文本框禁用非法输特效!的相关文章

Javascript中的window.event.keyCode使用介绍_javascript技巧

主要就是为了监听键盘按下的是哪个键,并且转成ASCII码; 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m

JavaScip中的window.event对像下的方法和属性在VS2005下显示不出来?

问题描述 JavaScip中的window.event对像下的方法和属性在VS2005下显示不出来?比如:window.event.KeyCode,提示没有此属性.请教什么原因?如何解决? 解决方案 解决方案二:高手呢?解决方案三:不可能,贴代码解决方案四:<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="a.aspx.cs"Inherits="a"%><

javascript中利用柯里化函数实现bind方法【推荐】_javascript技巧

• 柯理化函数思想:一个js预先处理的思想:利用函数执行可以形成一个不销毁的作用域的原理,把需要预先处理的内容都储存在这个不销毁的作用域中,并且返回一个小函数,以后我们执行的都是小函数,在小函数中把之前预先存储的值进行相关的操作处理即可: • 柯里化函数主要起到预处理的作用: • bind方法的作用:把传递进来的callback回调方法中的this预先处理为上下文context; /** * bind方法实现原理1 * @param callback [Function] 回调函数 * @par

javascript-关于JavaScript中的window.open方法

问题描述 关于JavaScript中的window.open方法 今天下了Myeclipse,打算试试做jsp和Html 然后写了如下测试代码; <!DOCTYPE html> WindowsDemo.html <meta name="keywords" content="keyword1,keyword2,keyword3"> <meta name="description" content="this

HTML中的window对象和JavaScript中的window对象 是同一个对象么?

问题描述 HTML中的window对象和JavaScript中的window对象 是同一个对象么?知情的大哥大姐们,详细解释下 问题补充:Rainbow702 写道 解决方案 Window 对象表示浏览器中打开的窗口.window 是浏览器给创建的,每个载入浏览器的 HTML 文档都会成为 Document 对象浏览器打开了一个window,window里面放的是documentwindow 相当于全局变量存在于这个document中,documnet包含js,html之类,所以应该是一个对象.

JavaScript中的Window窗口对象_基础知识

JavaScript中的Window窗口对象 他是JavaScript中最大的对象,它描述的是一个浏览器窗口.一般要引用它的属性和方法时,不需要用"window.xxx"这种形式,而直接使用"xxx".一个框架页面也是一个窗口. Window窗口对象有如下属性: name 窗口的名称,由打开它的连接(<a target="...">)或框架页(<frame name="...">)或某一个窗口调用的 o

JavaScript中的window.close在FireFox和Chrome上不能正常动作的解决方法

原文:JavaScript中的window.close在FireFox和Chrome上不能正常动作的解决方法 JS中关闭窗口的方法window.close()在IE上能够正常动作,而在FireFox和Chrome上无法动作. (当时,在Chrome35.0上的时候还是可以的,Chrome36.0上就无法动作了JS中关闭窗口的方法window.close()在IE上能够正常动作,而在FireFox和Chrome上无法动作.  (当时,在Chrome35.0上的时候还是可以的,Chrome36.0上

JavaScript中利用Array和Object实现Map的方法_javascript技巧

本文实例讲述了JavaScript中利用Array和Object实现Map的方法.分享给大家供大家参考.具体如下: 昨天突然看到以前别人用JavaScript实现的Map感觉很不错,但是发现有个别方法有问题,顺便完善了下,添加了 remove .indexOf .values.clear等方法. /** * @author blune68 * @version 0.1, 07/27/12 * */ function Map(){ this.keys = new Array(); this.dat

C#文本框中如何编写二分搜索?如何二分搜索文本框?二分搜索的C#怎么写?

问题描述 C#文本框中如何编写二分搜索?如何二分搜索文本框?二分搜索的C#怎么写? C#文本框中如何编写二分搜索?如何二分搜索文本框?二分搜索的C#怎么写? 解决方案 文本框和二分搜索没有关系 参考:http://trsiemens.blog.sohu.com/82302528.html 把int i = int.Parse(Console.ReadLine()); 修改为int i = int.Parse(textBox1.Text); 解决方案二: 文本框怎么进行二分搜索,,