第一步利用样式表。
<asp:TextBoxRunat="server"id="TT"style="ime-mode:disabled"οnkeydοwn="myKeyDown()"></asp:textBox>
第二步利用js脚本。
function myKeyDown(){ var k=window.event.keyCode; if ((k==46)||(k==8)||(k==189)||(k==109)||(k==190)||(k==110)|| (k>=48 && k<=57)||(k>=96 && k<=105)||(k>=37 && k<=40)) {} elseif(k==13){ window.event.keyCode = 9;} else{ window.event.returnValue = false;}}利用样式表(style="ime-mode:disabled" )可以防止切换成汉字输入法,也就是说只能使用英文输入法,这样就防止了输入汉字的情况。 js脚本就是要限制键盘输入,只能填入数字、小数点、负号、退格键、删除键和方向键。 ascii码说明: 8:退格键 46:delete 37-40: 方向键 48-57:小键盘区的数字 96-105:主键盘区的数字 110、190:小键盘区和主键盘区的小数点 189、109:小键盘区和主键盘区的负号 13:回车 9: Tab 就是那个把焦点移到下一个文本框的东东。 对了还有两个缺点: 1、没有验证多个小数点的情况。 2、没有验证多个负号,和符号必须在前的情况。来源:http://www.chenjiliang.com/Article/View.aspx?ArticleID=3558
注:防止邮件菜单粘贴:οncοntextmenu="javascript:return false;"
<input οnkeypress="return event.keyCode>=48&&event.keyCode<=57||event.keyCode==46" οnpaste="return !clipboardData.getData('text').match(/\D/)" οndragenter="return false" style="ime-mode: Disabled" />
说明 1 只能输入0到9和小数点 2 只能粘贴数字 3 不能拖动内容进来 4 禁止使用输入法
-----------------------------------------
<input type="text" name="row1" οnkeypress="return checkNumber(event)" /><script type="text/javascript"> //只能输入数字 function checkNumber(e) { var key = window.event ? e.keyCode : e.which;
//如果为 退格键 或 小数点 或 右移光标 或 左移光标 if(key == 8 || key == 46 || key == 4 || key == 19) { return true; } var keychar = String.fromCharCode(key); reg = /\d/; var result = reg.test(keychar); if(!result) { return false; } else { return true; } } </script>
经测试在 IE 和 FireFox 下均有效
*--48--57: 0到9的ascii码 *--13:回车键 *--8:退格键 *--7:删除键 *--4:右移光标 *--19:左移光标 *--45:负号 *--46:小数点
*--44:逗号(半角)