更改文本框的输入类型

时间:2016-06-15 06:16:08

标签: javascript

我正在为文本框使用脚本,以确保用户只能输入数字而不是文本。

这是我的文本框:

<input type="text" value="" id="tb1" name="tb1" onkeypress="return isNumber(event)" />

这是我的javascript:

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

我想升级我的JavaScript。我希望文本框接受带有点.(仅1个点)的输入,例如11.5

我需要在脚本中更改什么才能接受点并将其限制为一个?

5 个答案:

答案 0 :(得分:0)

试试这个

<script>
var isHav=false;
function isNumber(evt) {
   evt = (evt) ? evt : window.event;
   var charCode = (evt.which) ? evt.which : evt.keyCode;
   if(charCode == 46){  
      if(isHav==true){
         return false;
      }else{
         isHav=true;
         return true;
      }
   }

   if (charCode > 31 && (charCode < 48 || charCode > 57)) {
      return false;
   } 
      return true;
   }
</script>

答案 1 :(得分:0)

JavaScript:

<input type="text" value="" id="tb1" name="tb1" onkeypress="return isNumber(event)" />

HTML:

{{1}}

答案 2 :(得分:0)

或者你可以使用它..

function isNumber(evt) {
  var theEvent = evt || window.event;
  var key = theEvent.keyCode || theEvent.which;
  key = String.fromCharCode( key );
  var regex = /^[0-9.,]+$/;
  if( !regex.test(key) ) {
    theEvent.returnValue = false;
    if(theEvent.preventDefault) theEvent.preventDefault();
  }
}
<input type="text" value="" id="tb1" name="tb1" onkeypress="return isNumber(event)" />

答案 3 :(得分:0)

请按照以下代码:

您需要通过添加参数来更改函数onkeypress事件 如下所示:

<input type="text" value="" id="tb1" name="tb1" onkeypress="return isNumber(event, this)" />

并按以下方式更改您的功能:

function isNumber(evt, element) {
        var charCode = (evt.which) ? evt.which : event.keyCode
        if ((charCode != 46 || $(element).val().indexOf('.') != -1) &&      // “.” CHECK DOT, AND ONLY ONE.
            (charCode > 31 && (charCode < 48 || charCode > 57)))
        {
            return false;
        }

        return true;
    }

您可以查看以下正在运行的代码:

&#13;
&#13;
function isNumber(evt, element) {
        var charCode = (evt.which) ? evt.which : event.keyCode

        if ((charCode != 46 || $(element).val().indexOf('.') != -1) &&      // “.” CHECK DOT, AND ONLY ONE.
            (charCode > 31 && (charCode < 48 || charCode > 57)))
        {
            return false;
        }

        return true;
    }
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" value="" id="tb1" name="tb1" onkeypress="return isNumber(event, this)" />
&#13;
&#13;
&#13;

答案 4 :(得分:-1)

如果符合您的要求,您可以使用type =“number”属性

<input type="text" value="" id="tb1" name="tb1" onkeypress="return isNumber(event)" type="number" />

或使用此

function isNumber(evt)
{
   var charCode = (evt.which) ? evt.which : evt.keyCode;
   if (charCode != 46 && charCode > 31 
     && (charCode < 48 || charCode > 57))
      return false;

   return true;
}