在textarea中给出的数字应大于0且小于5

时间:2017-01-24 10:54:33

标签: angularjs

我尝试使用下面的代码,其中textarea接受大于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

2 个答案:

答案 0 :(得分:0)

请在解决此问题之前阅读以下讨论

Is there a float input type in HTML(5)?

  

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

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

Plunker

答案 1 :(得分:-2)

尝试使用parseFloat

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

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