如何设置输入类型=数字的最大长度?

时间:2016-05-31 06:29:53

标签: javascript html angularjs

我有一个文本字段。

<input type="number" min="0" max="999">

但我可以在文本框中输入尽可能多的数字。

当我设置max = 999时,我不希望发生这种情况。 有谁知道这个的解决方案? 我尝试了ng-maxlengthmaxlength,但无效。

7 个答案:

答案 0 :(得分:19)

max attribue指定我们可以指定的最大可能值。

了解更多详情see this link

我认为以下内容对您有所帮助,

//maxlength="10"
<input type="number" onKeyPress="if(this.value.length==10) return false;" />

答案 1 :(得分:1)

试试这个

&#13;
&#13;
var jimApp = angular.module("mainApp",  []);

jimApp.controller('mainCtrl', function($scope){
  var oldNumber = 0;
  $scope.numberChanged = function(number){
    if(number<=999){
      oldNumber = number;
    }
    return oldNumber;
  };
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>


<div  ng-app="mainApp" ng-controller="mainCtrl">
  <input type="number" min="0" max="999" ng-model="jimNum" ng-change="jimNum = numberChanged(jimNum);">
</div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

尝试

<input type="number" min="0" max="999" 
   onKeyUp="if(this.value>999){this.value='999';}else if(this.value<0){this.value='0';}"
id="yourid">

答案 3 :(得分:0)

使用JQuery JSFiddle

您的输入

<input type="number" id="num">

剧本:

$("#num").keypress( function(e) {
    var current_val = $(this).val();
    var typing_char = String.fromCharCode(e.which);
if (parseFloat(current_val + "" +typing_char) > 900) {
    return false;
}

})

答案 4 :(得分:0)

如果您限制单个字段

  <TextField type="number"
    className="text-field-amount"
    onInput={(e)=>{ 
        e.target.value = Math.max(0, parseInt(e.target.value) ).toString().slice(0,2)
    }}
    min={0}

答案 5 :(得分:0)

如果您要映射的数字超过一个,则通过映射输入文本字段,然后按以下步骤操作

     <TextField
                      key={key}
                      label={row.q_desc}
                      type="number"
                      onChange={this.onChange}
                      onInput={this.onInput}

                    />

    onInput= event => {
    event.preventDefault();

    debugger;
    var textField_name = this.state.input_Name;
    if (textField_name == "Zip") {
      event.target.value = Math.max(0, parseInt(event.target.value))
        .toString()
        .slice(0, 4);
    }

    if (textField_name == "Social Security") {
      event.target.value = Math.max(0, parseInt(event.target.value))
        .toString()
        .slice(0, 9);
    }
    if (textField_name == "Phone") {
      event.target.value = Math.max(0, parseInt(event.target.value))
        .toString()
        .slice(0, 10);
    }
  };



 onChange(e) {
          debugger;

         this.setState({
            input_Name: e.target.name
         });
  }

答案 6 :(得分:0)

对我有用的解决方案是将onkeypress与max属性一起使用。 例如最大长度为999

<input type="number" max="999" onkeypress="if (this.value.length > 2) return false;"/>

在Chrome,Firefox和Edge中进行了测试。