在文本区域中给出的数字应大于 0 且小于 5



我尝试使用以下代码,文本区域接受大于 0 和小于 5 的数字,一切正常,但当涉及到十进制时,它无法验证。 下面是我的代码

 <body ng-controller="MainCtrl">
  <form name="myform">
  <input type="number" min="0" name="minmax" ng-model="number" required="required" maxlength="10" numbers-only/>
 <span ng-show="myform.$error.numbersOnly">Enter the numbers only between 0 to 5 </span>
 </form>
 </body>

这是控制器

 var app = angular.module('plunker', []);
 app.directive('numbersOnly', function(){
   return {
     require: 'ngModel',
     link: function(scope, element, attrs, modelCtrl) {
       modelCtrl.$parsers.push(function (inputValue) {

       if(parseInt(inputValue) <= 5  && parseInt(inputValue) > 0){
         modelCtrl.$setValidity('numbersOnly', true);
         return inputValue;
       } else {
         modelCtrl.$setValidity('numbersOnly', false);
          return modelCtrl.$modelValue;
       }
    });
   }
 };
}); 
function MyCtrl($scope) {
$scope.number = ''
 }

这是我的工作 http://plnkr.co/edit/rOShiJYCZrXcgMdr951i?p=preview

在解决此问题之前,请阅读下面的讨论

HTML(5) 中有浮点输入类型吗?

现在,您需要在输入数字字段上设置step="0.01。 它将采用十进制和整数值。

<input type="number" name="minmax" ng-model="number" required="required" step="0.01 maxlength="10" numbers-only/>

普伦克

尝试使用 parseFloat

  if(parseFloat(inputValue) <= 5  && parseFloat(inputValue) > 0){

和改变 input type="number"input type="text"

最新更新