首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ng-pattern不显示$error.pattern

ng-pattern不显示$error.pattern
EN

Stack Overflow用户
提问于 2015-08-14 02:21:27
回答 1查看 36.2K关注 0票数 15

我有脚本here和ng-pattern正常工作,因为scope.subnet只有在输入匹配模式后才会显示在输出中。但是如果ng-pattern不匹配,ng-show不会显示任何错误

代码语言:javascript
复制
<body ng-contoller="myConfigGenCtr">
  <form novalidate name="myForm">
            <div class="form-group">
                <label for="hostname">Firewall hostname</label>
                <input type="text" ng-model="hostname" class="form-control" id="hostname">
            </div>
            <div class="form-group">
                <label for="subnet">Firewall subnet</label>
                <input type="text" ng-model="subnet" class="form-control" id="subnet"
                       required ng-pattern="/^(?:[0-9]{1,3}\.){3}/" >
                <div class="custom-error"  ng-show="myForm.subnet.$error.pattern">
                    Not a valid subnet, should be i.e. 10.x.y. (3 bytes only)</div>
            </div>
        </form>
  <div>Output: {{subnet}}</div>      
</body>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-14 02:49:18

当您添加带有其名称的表单标记时,angular会为该name属性值创建一个scope变量&并添加表单中具有name属性的所有表单字段。这些字段属性变量在表单作用域对象中创建。与这里一样,您使用的是myForm,这意味着$scope.myFrom拥有有关表单域的所有信息。比如使用$valid$invalid$error等来验证它的有效性。

在这里,您在表单的subnet元素上使用ng-show="myForm.subnet.$error.pattern"。您错过了在输入字段上添加name="subnet"属性,这导致subnet元素验证在myForm范围变量中不可用。

标记

代码语言:javascript
复制
<input type="text" name="subnet" ng-model="subnet" class="form-control" 
id="subnet" required ng-pattern="/^(?:[0-9]{1,3}\.){3}/" >
票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31995684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档