在Javascript中仅使用唯一小数点对TextField进行数字处理

时间:2012-03-26 22:40:31

标签: javascript

我可以在Javascript中开发以下代码,只允许给定HTML TextField的数字。

function isNumberKey(evt)
{
    var charCode = (evt.which) ? evt.which : event.keyCode;
    if (charCode > 31 && (charCode < 48 || charCode > 57))
    {
        return false;
    }
    return true;
}

<input type='text' id='textField' name='textField' onkeypress="return isNumberKey(event);">

但我需要允许一个且只有一个小数点()输入TextField。我尝试了一些方法,但我没有编写可以满足此要求的代码。如何只允许数字以及给定TextField唯一小数点?

2 个答案:

答案 0 :(得分:2)

你可以尝试这个Javascript吗?它适用于我的情况:

var decimalPointCount = 0; 
        function checkInputData(evt) {
            var charCode = (evt.which) ? evt.which : event.keyCode;
            if (charCode > 31 && (charCode < 48 || charCode > 57)) {
                if (charCode == 46 && decimalPointCount == 0) {
                    decimalPointCount++;
                    return true;
                }
                else {
                    return false;
                }
            }
            return true;
        }

答案 1 :(得分:1)

你可以试试这个javascript,

<script type="text/javascript">
   function isNumberKey(evt)
   {
 var charCode;
 if(evt.keyCode) //For IE
   charCode = evt.keyCode;
 else if(evt.Which)
   charCode = evt.Which; // For FireFox
 else
   charCode = evt.charCode; // Other Browser

     //var charCode = (evt.which) ? evt.which : event.keyCode;
     return (charCode<=31 ||  charCode==46 || (charCode>=48 && charCode<=57));
   }

   function validCurrency(txt)
   {
      return txt.match(/^\d*(.\d{0,2})?$/);
   }

   function validateForm(formObj)
   {
     if(!validCurrency(document.getElementById('textField').value))
     {
       document.getElementById('textField').select();
       document.getElementById('textField').focus();
       return false;
     }
     return true;
  }
</script>

<form name="form1" action="" onsubmit="return validateForm(this);">
    Amount: <input type='text' id='textField' name='textField' onkeypress="return isNumberKey(event);">

    <button type="submit">submit</button>
</form>

它只允许数字和唯一的小数点。