求一段JavaScript代碼,要求控制某個TextBox只能輸入小數,並且只能存在一個小數點,小數點不能出現在第一個位置?

解决方案 »

  1.   

    function checkNum()
    {
    var reg=/^[-\+]?\d+(\.\d+)?$/;
    if(reg.test(window.document.Form1.txtNum.value) == false)
    {
    alert('请输入一个大于0的整数!');
    document.Form1.txtNum.focus();
    return false;
    }
    }
      

  2.   

    function _MaskInput(oInput, sReg, sInputStr)
    {
    var re = new RegExp(sReg);
    var docSel = document.selection.createRange();
    if(docSel.parentElement().tagName.toLowerCase() != "input")
    return false;
    oSel = docSel.duplicate();
    oSel.text = "";
    var srcRange = oInput.createTextRange();
    oSel.setEndPoint("StartToStart", srcRange);
    var str = oSel.text + sInputStr + srcRange.text.substr(oSel.text.length);
    //alert(str);
    //alert(re.test(str));
    return re.test(str);
    }//bSign 是否可以输入符号
    //nInt  小数点前的位数  nDec 小数点后的位数
    function _SetDigitalInput(oInput,nInt,nDec,bSign)
    {
    if(typeof(bSign) != "boolean")
    bSign = false;
    oInput.style.imeMode = "disabled";
    var sReg = "^";
    if(bSign)
    sReg += "-?(";
    sReg += "\\\\d{1,"+nInt.toString()+"}";
    if(nDec > 0)
    sReg += "(\\\\.\\\\d{0,"+nDec.toString()+"})?";
    if(bSign)
    sReg += ")?";
    sReg += "$";
    oInput.onkeypress = new Function("return _MaskInput(this,'"+sReg+"',String.fromCharCode(event.keyCode))");
    oInput.onpaste = new Function("return _MaskInput(this,'"+sReg + "',window.clipboardData.getData('Text'))");
    oInput.ondrop = new Function("return _MaskInput(this,'"+sReg + "',event.dataTransfer.getData('Text'))");
    }<input type=text onkeypress="_SetDigitalInput(this, 5, 2, false);">
      

  3.   

    function checkNum()
    {
    var reg=/^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$/;
    if(reg.test(window.document.Form1.txtNum.value) == false)
    {
    alert('请输入小数!');
    document.Form1.txtNum.focus();
    return false;
    }
    }
      

  4.   

    <script language="javascript">
    function isValid()

    re = /^\d+\.?\d*$/ ;
    var str=form1.textfield_input.value; 
    if(!re.test(str)) 

    alert("只能输入一个小数,请重新输入");  
    len=str.length;  
    str1=str.substr(0,len-1);  
    form1.textfield_input.value=str1;  
    form1.textfield_input.focus();  
    return;    
    }
    }
    </script>
    <body>
    <form name="form1" method="post" action="">
      <input name="textfield_input" type="text" id="textfield_input" onKeyUp="javascript: isValid()">
      <input type="submit" name="Submit" value="Submit" >
    </form>
    </body>
      

  5.   

    非常感謝兩位,優其是xiedan79(Sam Xie)