<input type="text" onKeypress="return (/[\d.]/.test(String.fromCharCode(event.keyCode)))"/>

解决方案 »

  1.   

    <input type="text" onKeypress="var TF=(/[\d.]/.test(String.fromCharCode(event.keyCode)));if(!TF) alert('错误'); return TF;"/>
    刚刚题没有看完 ^_^'
      

  2.   

    <script language=javascript>
    function isNumber(str)
    {
    return str.match(/\D/)==null
    }
    </script>
      

  3.   

    function regInput(reg)
    {
            var srcElem = event.srcElement
            var oSel = document.selection.createRange()
            var srcRange = srcElem.createTextRange()
            oSel.setEndPoint("StartToStart", srcRange)
            var num = oSel.text + String.fromCharCode(event.keyCode) + srcRange.text.substr(oSel.text.length)
            event.returnValue = reg.test(num)
    }在文本框中加上以下代码
    onKeyPress="regInput(/^[0-9]*$/)" style="ime-mode:disabled"
      

  4.   

    上面的代码,包括英文字母,中文输入法都写不出来。
    但还是解决不了shift+数字的问题
    如果想加上小数点可以改成="regInput(/^[0-9]*$./)"
    但还是解决不了多次输入小数点的问题
      

  5.   

    这个应该是绝对没有问题了
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title></title>
    <script language="javascript">
      function checkIsFloat(){
        var nc=event.keyCode;
        if((nc>=48) && (nc<=57) ){
        }else if(nc==46){
          var s=document.frm.lengzg.value;
          for(var i=0;i<s.length;i++){
            if(s.charAt(i)=='.'){
                  event.keyCode=0; return;
            }
          }
        }else{
          event.keyCode=0;return;
        }
      }
    </script>
    </head>
    <body bgcolor="#ffffff">
    <form name="frm">
    <table width="331" border="0">
      <tr>
        <td width="154" height="35" scope="col">
          <div align="right">
            <label><font  size="2">输入距离:</font></label>
          </div></td>
        <td width="167" scope="col"><input type="text" name="lengzg" value="100" style="width:120px;" onkeypress="checkIsFloat();"><font  size="2">米</font>   
    </td>
      </tr>
    </table>
    </form>
    </body>
    </html>
      

  6.   

    <input onkeyup="value=value.replace(/[^\d]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" ID="Text2" NAME="Text2">
      

  7.   

    cxz7531(大花猫) 你这个切换到中文输入法 可以连续输入“。” 也不全面
      

  8.   

    to hcqhappy(月坏) 
    ----------------
    既然这样,再完善一下
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title></title>
    <script language="javascript">
      function checkIsFloat(){
        var nc=event.keyCode;
        if((nc>=48) && (nc<=57) ){
        }else if(nc==46){
          var s=document.frm.lengzg.value;
          for(var i=0;i<s.length;i++){
            if(s.charAt(i)=='.'){
                  event.keyCode=0; return;
            }
          }
        }else{
          event.keyCode=0;return;
        }
      }
    </script>
    </head>
    <body bgcolor="#ffffff">
    <form name="frm">
    <table width="331" border="0">
      <tr>
        <td width="154" height="35" scope="col">
          <div align="right">
            <label><font  size="2">输入距离:</font></label>
          </div></td>
        <td width="167" scope="col">
        <input type="text" name="lengzg" value="100" 
               style="width:120px;ime-mode:disabled" 
               onkeypress="checkIsFloat();" 
               onpaste="return !clipboardData.getData('text').match(/\D/)" 
               ondragenter="return false" >
          <font  size="2">米</font>   
    </td>
      </tr>
    </table>
    </form>
    </body>
    </html>