我尝试使用下面的代码,其中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 = ''
}
答案 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/>
答案 1 :(得分:-2)
尝试使用parseFloat
if(parseFloat(inputValue) <= 5 && parseFloat(inputValue) > 0){
并改变
input type="number"
至input type="text"