在网页里让文本框只能输入数字的一种方法。外加回车换Tab (javascript key键的使用)+禁止切换输入法
第一步利用样式表。
<asp:TextBox Runat="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))
{}
else if(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、没有验证多个负号,和符号必须在前的情况。
/*2008-12-25:网上兼容FF*/
</form><input type="text" οnkeydοwn="inputOnlyNum(event);" οnkeypress="checkIfNum(event);">
<script language="javascript">
var keyIsNum = true;
function inputOnlyNum(myEvent)
{
var keys=myEvent.keyCode;
if (!((keys>=48&&keys<=57)||(keys>=96&&keys<=105)||( keys==8 )||(keys==46)||(keys==37)||(keys==39)||(keys==13)||(keys==229)
))
{
keyIsNum = false;
}
else
{
keyIsNum = true;
}
}
function checkIfNum(myEvent)
{
if(!keyIsNum)
{
if(document.all)
myEvent.returnValue=false;//ie
else
myEvent.preventDefault();//ff
}
}
</script>
/*2008-12-25:网上兼容FF*/
/*2008-12-25,根据以上两种方法自己改写的兼容FF*/
/*2008-12-25:只能输入数字*/
function myKeyDown(myEvent)
{
var k;
if(window.event)
k = myEvent.keyCode; //IE
else
k = myEvent.which; //firefox
//alert(k);
alert(key);
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))
{}
else if(k==13)
{
if(window.event)
myEvent.keyCode = 9;
else
myEvent.which = 9;
}
else
{
//window.event.returnValue = false;
if(document.all)
myEvent.returnValue=false;//ie
else
myEvent.preventDefault();//ff
}
}
/*2008-12-25:只能输入数字*/
第一步利用样式表。
<asp:TextBox Runat="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))
{}
else if(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、没有验证多个负号,和符号必须在前的情况。
/*2008-12-25:网上兼容FF*/
</form><input type="text" οnkeydοwn="inputOnlyNum(event);" οnkeypress="checkIfNum(event);">
<script language="javascript">
var keyIsNum = true;
function inputOnlyNum(myEvent)
{
var keys=myEvent.keyCode;
if (!((keys>=48&&keys<=57)||(keys>=96&&keys<=105)||( keys==8 )||(keys==46)||(keys==37)||(keys==39)||(keys==13)||(keys==229)
))
{
keyIsNum = false;
}
else
{
keyIsNum = true;
}
}
function checkIfNum(myEvent)
{
if(!keyIsNum)
{
if(document.all)
myEvent.returnValue=false;//ie
else
myEvent.preventDefault();//ff
}
}
</script>
/*2008-12-25:网上兼容FF*/
/*2008-12-25,根据以上两种方法自己改写的兼容FF*/
/*2008-12-25:只能输入数字*/
function myKeyDown(myEvent)
{
var k;
if(window.event)
k = myEvent.keyCode; //IE
else
k = myEvent.which; //firefox
//alert(k);
alert(key);
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))
{}
else if(k==13)
{
if(window.event)
myEvent.keyCode = 9;
else
myEvent.which = 9;
}
else
{
//window.event.returnValue = false;
if(document.all)
myEvent.returnValue=false;//ie
else
myEvent.preventDefault();//ff
}
}
/*2008-12-25:只能输入数字*/