Angular告诉我浮点数不是数字

时间:2016-05-25 15:38:50

标签: javascript angularjs floating-point numbers

如果使用非整数,Angular会以红色突出显示文本框。

(function()
 {
     var app = angular.module('example', []);

     app.controller('InputController', function()
		    {
			this.number = '';
		    }
		   );
 })();
<html ng-app="example">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<form ng-controller="InputController as ctl" ng-submit="inputForm.$valid">
  <input type="number" step="0.001" pattern="(-|\+)?\d*\.?\d+" ng-model="ctl.number">
  <input type="submit">
</form>
</html>

如果我将step设置为0.001,那么当我放置超过三位小数的任何内容时,它会突出显示红色,例如9.1234

如果我放置模式(-|\+)?\d*\.?\d+,则不会改变任何内容。

将步骤与模式相结合并不能解决我的问题。

我怎样才能让它接受任何数字,而不只是整数,只有数字?

1 个答案:

答案 0 :(得分:1)

您可以使用两个选项来设置步长,这将最多 n 小数位有效。

<input type="number" ng-model="ctl.number" step="0.01">

或按Tushar建议,并使用ng-pattern

自行验证