繁体   English   中英

限制输入类型编号

[英]Restrict input type number

我很难将输入类型的数字限制为仅正数。 如该文章所述: HTML5:仅采用整数的数字输入类型? 不是在寻找step =“ 1”的答案,因为它也允许用户键入{e。,}。

我正在使用在相关文章( 如何限制输入只接受数字? )上找到的指令,我刚刚在其中添加了一些控制台日志和toString():

当输入类型是文本时,它可以正常工作,但是当输入类型是数字,而我输入'e','或'。时,则永远不会调用它。

对我在这里想念的东西有任何想法吗? 我想使用输入type = number来启用箭头以使用角形材料选择一个值。

function restrictInput($mdDialog) {
  return {
    restrict: 'A',
    require: 'ngModel',
    link: function(scope, element, attr, ctrl) {
      function inputValue(value) {
        console.log("hello ! :", value)
        var val = value.toString();
        console.log("goodbye ! : ", val)
        if (val) {
          var digits = val.replace(/[^0-9]/g, '');
          console.log("digits :", digits)
          console.log("val : ", val)
          if (digits !== val) {
            ctrl.$setViewValue(digits);
            ctrl.$render();
          }
          return parseInt(digits, 10);
        }
        return undefined;
      }
      ctrl.$parsers.push(inputValue);
    }
  };
}

HTML是这样的:

<md-input-container flex class="md-input-has-placeholder">
  <label>Années d'expérience stage inclus</label>
    <input
      type="number"
      required
      step="1"
      restrict-input
      min="0"
      name="Expérience stage"
      ng-model="model">
    <div ng-messages="form['Expérience stage'].$error" md-auto-hide="false">
      <div ng-message="required">Requis</div>
    </div>
</md-input-container>

编辑

在这里使用getter setter(ng-model-options =“ {getterSetter:true}”)效果很好。

如果只需要将输入类型“数字”限制为仅接受整数,则无需使用指令。

<input type="number" ng-pattern="/^(0|[1-9][0-9]*)$/" >

您可以在应用程序中输入上述代码吗?

这只会接受数字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM