输入金钱,只能输入整数或者小数,且小数点不能多个

只能输入小数或者整数,且验证多个小数点的情况:

第一种方法:

js 限制 只能输入整数或小数

<input style="ime-mode:disabled" οnkeydοwn="myKeyDown()">

<script language="javascript">

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;}

}

</script>

ascii码说明:
8:退格键
46:delete
37-40: 方向键
48-57:小键盘区的数字
96-105:主键盘区的数字
110、190:小键盘区和主键盘区的小数点
189、109:小键盘区和主键盘区的负号

13:回车
9: Tab 就是那个把焦点移到下一个文本框的东东。

对了还有两个缺点:
1、没有验证多个小数点的情况。

针对这些缺点 在文本框里再加入一个正则式的判断 就可以很好的解决多个小数点的情况了 跟改后如下:

<input style="ime-mode:disabled" οnkeydοwn="myKeyDown()" οnkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')" >

 

第二种方法:

 

<asp:TextBox ID="txt_p_price" onpropertychange="if(isNaN(value)) value=value.substring(0,value.length-1);"
                    runat="server" Width="30%" CssClass="titlerule"></asp:TextBox>

 

 

 

输入保留小数点后面的位数:

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
  <TITLE> New Document </TITLE>
  <SCRIPT LANGUAGE="JavaScript">
  <!--
function testA(e){
  var testValue =document.getElementById(e.id);
  var temp = testValue.value.replace(/[^\d\.]/g,'');
  //如果要输入3位 就匹配表达式改为 regE = /^\d*\.?\d{0,3}$/;
  var regE = /^\d*\.?\d{0,2}$/;
  var str='';
  var i = 1;
  while(i<=temp.length)
  {
   var gd;
   gd = temp.substring(i,0);
   if(regE.test(gd) == true)
   {
    str=gd;
   }
   i++;
  }
  testValue.value = str;
   if(parseFloat( testValue.value) >=1 || parseFloat( testValue.value)<0){
         testValue.value='0.00';
   }
}
  //-->
  </SCRIPT>
</HEAD>
<BODY>
<input id="testA" οnkeyup="testA(this)" >
<input id="testB" οnkeyup="testA(this)" >
</BODY>
<HTML>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值