• AngularJS自定义表单验证器


    <!doctype html>
    <html ng-app="myApp">
    <head>
        <script src="G:\Source\Repos\GWD\Gridsum.WebDissector.Website.ZC\Gridsum.WebDissector.Website.ZC\Pages\dist\assets\lib\angularjs\angular.js"></script>
        <script type="text/javascript">
            var app = angular.module('myApp', []);
            var INTEGER_REGEXP = /^-?d*$/;
            app.directive('integer', function () {
                return {
                    require: 'ngModel',
                    link: function (scope, elm, attrs, ctrl) {
                        ctrl.$parsers.unshift(function (viewValue) {
                            if (INTEGER_REGEXP.test(viewValue)) {
                                // it is valid
                                ctrl.$setValidity('integer', true);
                                return viewValue;
                            } else {
                                // it is invalid, return undefined (no model update)
                                ctrl.$setValidity('integer', false);
                                return undefined;
                            }
                        });
                    }
                };
            });
            var FLOAT_REGEXP = /^-?d+((.|\,)d+)?$/;
            app.directive('smartFloat', function () {
                return {
                    require: 'ngModel',
                    link: function (scope, elm, attrs, ctrl) {
                        ctrl.$parsers.unshift(function (viewValue) {
                            if (FLOAT_REGEXP.test(viewValue)) {
                                ctrl.$setValidity('float', true);
                                return parseFloat(viewValue.replace(',', '.'));
                            } else {
                                ctrl.$setValidity('float', false);
                                return undefined;
                            }
                        });
                    }
                };
            });
        </script>
    </head>
    <body>
        <div>
            <form name="form" class="css-form" novalidate>
                <div>
                    Size (integer 0 - 10):
                    <input type="number" ng-model="size" name="size"
                           min="0" max="10" integer />
                    <span ng-show="form.size.$error.integer">This is not valid integer!</span>
                    <span ng-show="form.size.$error.min || form.size.$error.max">
                        The value must be in range 0 to 10!
                    </span>
                </div>
                <div>
                    Length (float):
                    <input type="text" ng-model="length" name="length" smart-float />
                    <span ng-show="form.length.$error.float">
                        This is not a valid float number!
                    </span>
                </div>
            </form>
        </div>
    </body>
    </html>
    

      

  • 相关阅读:
    快速排序学习
    转载 libSVM介绍(二)
    支持向量机: Maximum Margin Classifier
    联发科笔试题之字符编码
    研究1
    在OnLButtonDown获取其他控件被点击的消息
    希尔排序学习
    快速排序
    别人的string的实现,有时间好好学习下
    完成动态根据类别动态填充区域颜色
  • 原文地址:https://www.cnblogs.com/chengshuiqiang/p/4623208.html
Copyright © 2020-2023  润新知