【问题标题】:Angular JS - Number Validation If TextField Is Not EmptyAngular JS - 如果 TextField 不为空,则进行数字验证
【发布时间】:2015-07-29 12:48:16
【问题描述】:

我的 Angular 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);
        }
    };
});

【问题讨论】:

    标签: angularjs validation input decimal


    【解决方案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 或最小和最大长度的演示...
    也不允许使用数字或其他特殊字符...
    您没有指定需要哪种类型的验证...

    【讨论】:

    • 感谢先生的快速响应。这对于字母数字非常有用,但是我正在寻找值的数字/十进制验证。
    • 您只需更改 ng-pattern ....为您的需要编写一个正则表达式..它可以直接工作
    • ng-pattern="/^[1-9]\d*(\.\d+)?$/" 添加这个验证它工作正常
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-28
    • 2016-12-18
    • 1970-01-01
    • 1970-01-01
    • 2019-12-16
    • 2018-05-07
    • 2014-08-17
    相关资源
    最近更新 更多