javascript中Dom对象实现金额文本框
2012-05-31 14:27
148 查看
金额文本框常常出现在财务管理系统中,对其文本框有如下效果:
1.禁止输入中文和英文字母,只能输入数字,辅助键只有Delete、方向键、Enter键以及Tab键等。
2.当文本框获得焦点时文本会向左对齐,失去焦点后文本向右对齐。
3.失去焦点后会自动增加千分位,获得焦点则去除千分位。
4.禁止粘贴不符合格式的文本。
对于以上效果将如何实现呢?
解决方案:
第一,文本框中禁止输入中文和英文字母。对于键盘中的每一个按键都会有一个键盘码(键盘码不是ASCII码),其中Enter键的键盘码为13,Tab键的键盘码为9,退格键的键盘码为8,Delete键的键盘码为46,方向键的键盘码为37~40,小键盘的数字键盘码为48~57,主键盘的数字键盘码为:96~105,小键盘上的小数点键盘码为110,主键盘上的小数点键盘码为190,小键盘上的负号键盘码为189,主键盘上的符号键盘码为109。知道这些键盘码后只需要判断文本框中的onkeydown事件,当按下的键的键值在这些范围之内则返回一个true,否则则返回一个false。
第二,文本框获得焦点文本向左对齐,失去焦点后文本向右对齐。只需在onfocus和onblur事件中将文本框的style.textAlign分别设置为“left”和“right”。
第三,失去焦点后自动增加千分位。此时需要使用正则表达式。具体自动增加千分位的代码如下:
第四,禁止粘贴不符合格式的文本。先取到剪贴板中的文本,然后进行遍历,如果其中的文本不符合格式则返回false。
所有代码如下所示:
在整个功能的实现中,正则表达式是一个难点,这里就不一一鏊述了。代码中如果存在问题可进行评论,希望和大家一起学习进步!
1.禁止输入中文和英文字母,只能输入数字,辅助键只有Delete、方向键、Enter键以及Tab键等。
2.当文本框获得焦点时文本会向左对齐,失去焦点后文本向右对齐。
3.失去焦点后会自动增加千分位,获得焦点则去除千分位。
4.禁止粘贴不符合格式的文本。
对于以上效果将如何实现呢?
解决方案:
第一,文本框中禁止输入中文和英文字母。对于键盘中的每一个按键都会有一个键盘码(键盘码不是ASCII码),其中Enter键的键盘码为13,Tab键的键盘码为9,退格键的键盘码为8,Delete键的键盘码为46,方向键的键盘码为37~40,小键盘的数字键盘码为48~57,主键盘的数字键盘码为:96~105,小键盘上的小数点键盘码为110,主键盘上的小数点键盘码为190,小键盘上的负号键盘码为189,主键盘上的符号键盘码为109。知道这些键盘码后只需要判断文本框中的onkeydown事件,当按下的键的键值在这些范围之内则返回一个true,否则则返回一个false。
第二,文本框获得焦点文本向左对齐,失去焦点后文本向右对齐。只需在onfocus和onblur事件中将文本框的style.textAlign分别设置为“left”和“right”。
第三,失去焦点后自动增加千分位。此时需要使用正则表达式。具体自动增加千分位的代码如下:
function comafy(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; }
第四,禁止粘贴不符合格式的文本。先取到剪贴板中的文本,然后进行遍历,如果其中的文本不符合格式则返回false。
所有代码如下所示:
<!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>无标题页</title> <script type="text/javascript"> function numOnKeyDown(key){ var key=window.event.keyCode; if(key==13){ window.event.keyCode=9; } return isVlueNumber(key); } function isVlueNumber(key){ return((key==13)||(key==9)||(key==8)||(key==46)||((key>=37)&&(key<=40))||((key>=48)&&(key<=57))||((key>=96)&&(key<=105)) ||(key==109)||(key==110)||(key==189)||(key==190)) } function numVerify(){ var data=window.clipboardData.getData("Text"); for(var i=0;i<data.length;i++){ var asc=data.charCodeAt(i); if(!isVlueNumber(asc)){ return false; } } } function comafy(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="tx1" type="text" onfocus="document.getElementById('tx1').style.textAlign='left';this.value=this.value.replace('\,','');" onpaste="return numVerify()" onblur="document.getElementById('tx1').style.textAlign='right';this.value=comafy(this.value);" onkeydown="return numOnKeyDown(this);" style="ime-mode:disabled;" /> </body> </html>
在整个功能的实现中,正则表达式是一个难点,这里就不一一鏊述了。代码中如果存在问题可进行评论,希望和大家一起学习进步!
相关文章推荐
- javascript实现记录文本框内文字个数
- jQuery实现文本框回车键转tab键 分类: JavaScript 2012-12-06 16:19 1799人阅读 评论(0) 收藏
- javascript实现文本框默认内容Demo
- JavaScript在ASP页面中实现掩码文本框效果代码
- js实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器[原创]_JavaScript_脚本之家
- html中利用javascript实现文本框字数的动态计算
- 用javascript实现input文本框只能输入中文的方法
- html中利用javascript实现文本框字数的动态计算
- html中利用javascript实现文本框字数的动态计算
- jQuery实现文本框回车键转tab键 分类: JavaScript 2012-12-06 16:19 1800人阅读 评论(0) 收藏
- JavaScript实现在文本框中输入空格时自动填写某个值
- 用javascript实现文本框和"选择"按扭之间的间距
- 利用javascript实现禁用网页上所有文本框,下拉菜单,多行文本域
- javascript实现将数字金额变成中文大写金额
- JavaScript如何实现在文本框(密码框)输入提示语
- javascript和jquery实现设置和移除文本框默认值效果代码
- JavaScript实现文本框点击时文字消失,失去焦点时文字出现
- 用javascript实现文本框和"选择"按扭之间的间距
- javascript实现数字转大写金额的函数