如果使用非整数,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+
,则不会改变任何内容。
将步骤与模式相结合并不能解决我的问题。
我怎样才能让它接受任何数字,而不只是整数,只有数字?
答案 0 :(得分:1)
您可以使用两个选项来设置步长,这将最多 n 小数位有效。
<input type="number" ng-model="ctl.number" step="0.01">
或按Tushar建议,并使用ng-pattern