CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

怎样限定文本框输入的只能是数字?

楼主junwangmail(军)2005-09-25 15:06:35 在 Web 开发 / ASP 提问

各位高手:  
  怎样限定文本框输入的只能是数字?  
  最好有代码,  
  谢谢了!  
   
   
  问题点数:50、回复次数:10Top

1 楼shine2000(勇敢的心)回复于 2005-09-25 15:20:56 得分 30

<input   type=text   onkeyup="value=value.replace(/[^\d]/g,'')">Top

2 楼qiqunet(瑞旗·广东)回复于 2005-09-25 15:25:42 得分 20

<script   languang="javascript">  
  function   checkkey(v){  
      var   kc=event.keyCode;  
      if   (kc   ==43   ||kc   ==45   ||kc   ==46   ||kc   ==13   ||   (kc   >47   &&   kc   <58)){  
              //只允许输入“+”“-”“.”“回车”“0-9”等字符。  
   
              if(kc==46&&v.indexOf('.')   >-1)event.returnValue   =   false;  
                      //不允许输入多个小数点  
   
              if((kc==43||kc==45)&&(v.indexOf('+')>-1||v.indexOf('-')>-1||v.length>0))event.returnValue   =   false;  
                      //不允许输入多个正负号,不允许在数字中间输入正负号  
   
      }else{  
          event.returnValue   =   false;  
          alert("请输入数字");  
      }  
  }  
   
   
   
   
      function   checkvalue(obj){  
          if(!/^[+|-]?\d+\.?\d*$/.test(obj.value)&&obj.value!=''){  
              alert('你输入的不是数字,或关闭输入法后再输入');  
              obj.select();  
          }  
      }  
  </script>  
   
   
  <br/>  
  用正则<input   name="s"   onblur="checkvalue(this)"><br/>  
  用常规<input   onkeypress="checkkey(value);"   onblur="value=value=='+.'||value=='-.'?value+0:value">  
  Top

3 楼xilo()回复于 2005-09-25 15:33:04 得分 0

提交到数据库的时候记得还要用ASP判断哦。Top

4 楼l_0117(笑看山河)回复于 2005-09-25 15:34:03 得分 0

javascript函数代码:  
  function   IsDigit()  
  {  
    return   ((event.keyCode   >=   48)   &&   (event.keyCode   <=   57));  
  }  
  调用:  
  <input   type="text"   onKeyPress="event.returnValue=IsDigit();">Top

5 楼zhaopengfei2005(我是不是走到了世界的邊緣?)回复于 2005-09-25 17:24:29 得分 0

<input   type=text   onkeyup="value=value.replace(/[^\d]/g,'')">  
  这个好象不好用,把下划线也禁止了Top

6 楼qiqunet(瑞旗·广东)回复于 2005-09-26 01:16:46 得分 0

 
  修正一下,上面提供的那个正则方法有点错误,该方法允许了输入“|”号,所以不对。  
   
  <script   languang="javascript">  
      function   checkvalue(obj){  
          if(!/^[+-]?\d+\.?\d*$/.test(obj.value)&&obj.value!=''){  
              alert('你输入的不是数字,或关闭输入法后再输入');  
              obj.select();  
          }  
      }  
  </script>  
   
   
  <br/>  
  用正则<input   name="s"   onblur="checkvalue(this)"><br/>  
  Top

7 楼starsrainmzl(白衣)回复于 2005-09-26 07:25:41 得分 0

<script   languang="javascript">  
    function   OnlyNum()  
    {  
        if(isNaN(frmOutStore.txtInfactNumber.value))  
        {  
            alert('实领数量请输入数字!');  
            frmOutStore.txtInfactNumber.focus();  
          }  
    }  
  </script>Top

8 楼etononline(瑞金 www.rj163.com)回复于 2005-09-26 08:46:36 得分 0

给一个完整的效果  
   
   
  <HTML>  
  <HEAD>  
  <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">  
  <title>查询系统</title>  
  <STYLE   type=text/css>  
  TD   {  
  FONT-SIZE:   9pt  
  }  
  A:link   {  
  COLOR:   #003399;   TEXT-DECORATION:   none  
  }  
  A:visited   {  
  COLOR:   #003399;   TEXT-DECORATION:   none  
  }  
  A:hover   {  
  COLOR:   #cc0000  
  }  
  .av_gofd_but   {  
  border:1px   solid   #003399;   BACKGROUND-COLOR:   #ffffff;   FONT-FAMILY:   "&Euml";   FONT-SIZE:   9pt;   HEIGHT:   20px;   &aring  
  }  
  .av   {  
  border:1px   solid   #CFCFD2  
  }  
  </STYLE>  
  <SCRIPT   LANGUAGE=javascript>  
  <!--  
  function   cal1_onclick()  
  {open("cal.html","calendar","toolbar=no,location=no,resizable=yes,left=20,top=100,width=450,height=420")}  
  function   cal2_onclick()  
  {open("cal1.html","calendar","toolbar=no,location=no,resizable=yes,left=20,top=100,width=450,height=420")}  
     
  function   Form_Validator(theForm)  
  {  
  if   (theForm.tele_num.value   ==   "")  
      {  
          alert("请输入查询号码。");  
          theForm.tele_num.focus();  
          return   (false);  
      }  
  if   (theForm.tele_num.value   <   99999)/*至少6位*/  
      {  
          alert("查询号码至少6位。");  
          theForm.tele_num.focus();  
          return   (false);  
      }      
       
  var   checkOK   =   "0123456789";  
      var   checkStr   =   theForm.tele_num.value;  
      var   allValid   =   true;  
      for   (i   =   0;     i   <   checkStr.length;     i++)  
      {  
          ch   =   checkStr.charAt(i);  
          for   (j   =   0;     j   <   checkOK.length;     j++)  
              if   (ch   ==   checkOK.charAt(j))  
                  break;  
          if   (j   ==   checkOK.length)  
          {  
              allValid   =   false;  
              break;  
          }  
      }  
      if   (!allValid)  
      {  
          alert("在   查询号码   域中,只能输入数字。");  
          theForm.tele_num.focus();  
          return   (false);  
      }      
  var   checkOK   =   "0123456789-";  
      var   checkStr   =   theForm.date1.value;  
      var   allValid   =   true;  
      for   (i   =   0;     i   <   checkStr.length;     i++)  
      {  
          ch   =   checkStr.charAt(i);  
          for   (j   =   0;     j   <   checkOK.length;     j++)  
              if   (ch   ==   checkOK.charAt(j))  
                  break;  
          if   (j   ==   checkOK.length)  
          {  
              allValid   =   false;  
              break;  
          }  
      }  
      if   (!allValid)  
      {  
          alert("在   日期   域中,只能输入数字。");  
          theForm.date1.focus();  
          return   (false);  
      }          
      var   checkOK   =   "0123456789-";  
      var   checkStr   =   theForm.date2.value;  
      var   allValid   =   true;  
      for   (i   =   0;     i   <   checkStr.length;     i++)  
      {  
          ch   =   checkStr.charAt(i);  
          for   (j   =   0;     j   <   checkOK.length;     j++)  
              if   (ch   ==   checkOK.charAt(j))  
                  break;  
          if   (j   ==   checkOK.length)  
          {  
              allValid   =   false;  
              break;  
          }  
      }  
      if   (!allValid)  
      {  
          alert("在   日期   域中,只能输入数字。");  
          theForm.date2.focus();  
          return   (false);  
      }          
       
       
  var   checkOK   =   "0123456789";  
      var   checkStr   =   theForm.minute1.value;  
      var   allValid   =   true;  
      for   (i   =   0;     i   <   checkStr.length;     i++)  
      {  
          ch   =   checkStr.charAt(i);  
          for   (j   =   0;     j   <   checkOK.length;     j++)  
              if   (ch   ==   checkOK.charAt(j))  
                  break;  
          if   (j   ==   checkOK.length)  
          {  
              allValid   =   false;  
              break;  
          }  
      }  
      if   (!allValid)  
      {  
          alert("在   分钟   域中,只能输入数字。");  
          theForm.minute1.focus();  
          return   (false);  
      }          
       
  var   checkOK   =   "0123456789";  
      var   checkStr   =   theForm.minute2.value;  
      var   allValid   =   true;  
      for   (i   =   0;     i   <   checkStr.length;     i++)  
      {  
          ch   =   checkStr.charAt(i);  
          for   (j   =   0;     j   <   checkOK.length;     j++)  
              if   (ch   ==   checkOK.charAt(j))  
                  break;  
          if   (j   ==   checkOK.length)  
          {  
              allValid   =   false;  
              break;  
          }  
      }  
      if   (!allValid)  
      {  
          alert("在   分钟   域中,只能输入数字。");  
          theForm.minute2.focus();  
          return   (false);  
      }      
   
  var   checkOK   =   "0123456789";  
      var   checkStr   =   theForm.hour1.value;  
      var   allValid   =   true;  
      for   (i   =   0;     i   <   checkStr.length;     i++)  
      {  
          ch   =   checkStr.charAt(i);  
          for   (j   =   0;     j   <   checkOK.length;     j++)  
              if   (ch   ==   checkOK.charAt(j))  
                  break;  
          if   (j   ==   checkOK.length)  
          {  
              allValid   =   false;  
              break;  
          }  
      }  
      if   (!allValid)  
      {  
          alert("在   小时   域中,只能输入数字。");  
          theForm.hour1.focus();  
          return   (false);  
      }  
  var   checkOK   =   "0123456789";  
      var   checkStr   =   theForm.hour2.value;  
      var   allValid   =   true;  
      for   (i   =   0;     i   <   checkStr.length;     i++)  
      {  
          ch   =   checkStr.charAt(i);  
          for   (j   =   0;     j   <   checkOK.length;     j++)  
              if   (ch   ==   checkOK.charAt(j))  
                  break;  
          if   (j   ==   checkOK.length)  
          {  
              allValid   =   false;  
              break;  
          }  
      }  
      if   (!allValid)  
      {  
          alert("在   小时   域中,只能输入数字。");  
          theForm.hour2.focus();  
          return   (false);  
      }  
   
  if   (theForm.minute1.value>60)  
  {  
          alert("在   分钟   域中,最大值60。");  
          theForm.minute1.focus();  
          return   (false);  
  }  
  if   (theForm.minute2.value>60)  
  {  
          alert("在   分钟   域中,最大值为60。");  
          theForm.minute2.focus();  
          return   (false);  
  }  
  if   (theForm.hour1.value>24)  
  {  
          alert("在   小时   域中,最大值为24。");  
          theForm.hour1.focus();  
          return   (false);  
  }  
  if   (theForm.hour2.value>24)  
  {  
          alert("在   小时   域中,最大值为24。");  
          theForm.hour2.focus();  
          return   (false);  
  }  
  if   (theForm.date1.value   ==   "")  
      {  
          alert("请输入日期段。");  
          theForm.date1.focus();  
          return   (false);  
      }  
  if   (theForm.date2.value   ==   "")  
      {  
          alert("请输入日期段。");  
          theForm.date2.focus();  
          return   (false);  
      }      
   
  if   (theForm.date2.value   <   theForm.date1.value)  
      {  
          alert("结束日期应等于或大于开始日期。");  
          theForm.date2.focus();  
          return   (false);  
      }      
   
  }  
   
  //-->  
  </SCRIPT>  
  </HEAD>  
  <BODY   topmargin="0"   marginwidth="0"   leftmargin="0"   marginheight="0"   rightmargin="0"   background="image/gglbg.gif">  
  <table   width="369"   height="125"   border="0"   cellpadding="0"   cellspacing="0">  
                      <form   action="query_op.asp"   onsubmit="return   Form_Validator(this)"   name=form1   id=form1   method="post">  
                          <tr>  
                              <td   height="30"   colspan="2"   align="right">   查询号码:</td>  
                              <td   width="93"   height="30"   colspan="4"><input   id="tele_num"   name="tele_num"   class="av_gofd_but"   size="25"   >  
                              </td>  
                              <td   height="30"   width="143"> </td>  
                          </tr>  
                          <tr>  
                              <td   height="30"   colspan="2"   align="right">开始日期:</td>  
                              <td   height="30"><input   id="date1"   name="date1"   class="av_gofd_but"   size="12"></td>  
                              <td   width="23"   height="30"   align="right"><input   id="hour1"   name="hour1"   class="av_gofd_but"   size="3"   maxlength="2"></td>  
                              <td   width="12"   height="30"   align="left">:</td>  
                              <td   height="30"   width="32"><input   id="minute1"   name="minute1"   class="av_gofd_but"   size="3"   maxlength="2"></td>  
                              <td   height="30"   width="143"><IMG   onclick="return   cal1_onclick()"   src="image\show-calendar.gif"   ></td>  
                          </tr>  
                          <tr>  
                              <td   height="30"   colspan="2"   align="right">   结束日期:</td>  
                              <td   height="30"><input   id="date2"   name="date2"   class="av_gofd_but"   size="12"   ></td>  
                              <td   width="23"   height="30"   align="right"><input   id="hour2"   name="hour2"   class="av_gofd_but"   size="3"   maxlength="2"></td>  
                              <td   width="12"   height="30"   align="left">:</td>  
                              <td   height="30"   width="32"><input   id="minute2"   name="minute2"   class="av_gofd_but"   size="3"   maxlength="2"></td>  
                              <td   height="30"   width="143"><IMG   onclick="return   cal2_onclick()"   src="image\show-calendar.gif"   ></td>  
                          </tr>  
                          <tr>  
                              <td   width="12"   height="35"> </td>  
                              <td   width="54"   height="35"> </td>  
                              <td   height="35"   colspan="5"><input   name="submit"   type="submit"   class="av_gofd_but"   value="提   交">  
                                      <input   name="B2"   type="reset"   class="av_gofd_but"   value="重   置"></td>  
                          </tr>  
                      </form>  
              </table>  
   
   
  </BODY>  
  </HTML>Top

9 楼junwangmail(军)回复于 2005-09-26 22:52:45 得分 0

谢谢大家了Top

10 楼RoseKnife(花满楼)回复于 2005-09-26 23:04:05 得分 0

牛人Top

相关问题

  • 文本框只能输入数字
  • 关于判断文本框只能输入数字并限定位数的问题!请天同回答!
  • 如何限定文本框输入的只能是中文?
  • 怎样限定多行文本框允许输入的行数?
  • 如何限定一个文本框的输入范围?
  • 在输入文本框中怎么样限定输入的字符???
  • 如何让文本框只能输入数字
  • 如何让文本框只能输入数字?
  • 限制文本框输入只能为数字
  • 如何屏蔽文本框的非数字输入?(请看题)

关键词

  • 日期

得分解答快速导航

  • 帖主:junwangmail
  • shine2000
  • qiqunet

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo