Angular JS - 如果TextField不为空,则进行数字验证

时间:2015-07-29 12:48:17

标签: angularjs validation input decimal

我的角度js表格上有一个文字字段,用于表示商品的销售价格。该字段不是必需的,但是我希望它有效的数字/小数输入验证>如果用户在字段中输入值,则为0。任何无效输入都应强制该字段恢复为0.00M十进制。

我在基本的validNumber指令上尝试了一些不同的变体,但我无法使其正常工作。如果我希望输入值始终是值,那么我的指令工作正常。

这是我现在用于RetailPrice的指令,这是必需的。我已经删除了我添加的代码,因为它无论如何都没有工作。

app.directive('validNumber', function () {
    return {
        require: "ngModel",
        link: function (scope, elm, attrs, ctrl) {
            var regex = /^\d{1,3}(,\d{3})*(\.\d+)?$/;
            var validator = function (value) {
                ctrl.$setValidity('validNumber', regex.test(value));
                return value;
            };
            ctrl.$parsers.unshift(validator);
            ctrl.$formatters.unshift(validator);
        }
    };
});

1 个答案:

答案 0 :(得分:1)

<label class="span5"> Username:<span style="color: red" ng-show="manageupdateuser.loginname.$error.required" >*</span></label>
            <div class="span6">
                <input class="span12" type="text" name="loginname" ng-model="oldusername" ng-pattern="/^[a-zA-Z]+$/" ng-minlength="2" ng-maxlength="25" required>
                <span style="color: red" ng-show="manageupdateuser.loginname.$error.minlength">Allow minimum 2 characters.</span>
                <span style="color: red" ng-show="manageupdateuser.loginname.$error.maxlength">Allow maximum 25 characters.</span>
                <span style="color: red" ng-show="manageupdateuser.loginname.$error.pattern">Any other symbol are not allow.</span>
            </div>    

这是仅允许a-z和A-z或最小和最大长度的演示...
还有数字或者特殊字符不允许...
您没有指定需要哪种类型的验证...

相关问题