您的位置:首页 > 编程语言 > ASP

ASP.NET让文本框只能输入数字的一种方法,外加回车换Tab

2012-05-18 18:14 441 查看
第一步利用样式表。

<asp:TextBoxRunat="server"id="TT"style="ime-mode:disabled"onkeydown="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

注:防止邮件菜单粘贴:oncontextmenu="javascript:return false;"

<input onkeypress="return event.keyCode>=48&&event.keyCode<=57||event.keyCode==46"
onpaste="return !clipboardData.getData('text').match(/\D/)" ondragenter="return false"
style="ime-mode: Disabled" />
说明
1 只能输入0到9和小数点
2 只能粘贴数字
3 不能拖动内容进来
4 禁止使用输入法
-----------------------------------------
<input type="text" name="row1" onkeypress="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:逗号(半角)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: