如何在angularjs中捕获ng-pattern

时间:2014-01-06 07:23:24

标签: angularjs input

我有一个例子。

<input type="text" id="openDate" name="openDate" ng-model="ngModel" required="" ng-minlength="1" ng-maxlength="10" ng-pattern="/^[0-9,/]+$/">

当ng-pattern catch错误时,它会在输入元素上绘制红色。

所以我想抓住这个错误并显示标题消息:“此字段为失败格式。”

如何做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以使用directive来抓住它。

因此,在您的HTML中,您将创建一个新属性,而不是使用ng-pattern。在这种情况下,我称之为ng-attr-mynewpattern。

<input type="text" ng-model="opendate" ng-minlength="1" ng-maxlength="10" ng-attr-mynewpattern="/^[0-9,/]+$/">

然后,添加指令。请注意,您剥离了&#34; ng-attr&#34;。在指令中,我在范围中设置元素和模式。这应该可能会变得更强大,但我想让这个例子保持简单。

app.directive("mynewpattern", function () {
    return {
        restrict: "A",
        link: function (scope, el, attrs) {
            scope.pattern = attrs.mynewpattern;
            scope.el = el;
        }
    };
});

这里是一个jsFiddle:http://jsfiddle.net/tonyzampogna/6Vj7p/