我使用ng-pattern =“/ 0-9 /”设置price_field不接受十进制数。但是当我输入自然数(从0到9999999)时,ng-show被激活为无效数字!
我哪里做错了?。请帮忙。
<form name="myform" data-ng-submit="create()"> <input type="number" name="price_field" data-ng-model="price" require ng-pattern="/0-9/" <span ng-show="myform.price_field.$error.pattern">Not valid number!</span> <input type="submit" class="btn"> </form>
问题是,你的REGX模式只会匹配输入“0-9”。
为了满足你的要求(0-9999999),你应该重写你的regx模式:
ng-pattern="/^[0-9]{1,7}$/"
我的例子:
HTML:
<div ng-app ng-controller="formCtrl"> <form name="myForm" ng-submit="onSubmit()"> <input type="number" ng-model="price" name="price_field" ng-pattern="/^[0-9]{1,7}$/" required> <span ng-show="myForm.price_field.$error.pattern">Not a valid number!</span> <span ng-show="myForm.price_field.$error.required">This field is required!</span> <input type="submit" value="submit"/> </form> </div>
JS:
function formCtrl($scope){ $scope.onSubmit = function(){ alert("form submitted"); } }
这里是一个jsFiddle demo
希望这对你有帮助。