ng-pattern没有显示$ error.pattern

时间:2015-08-13 18:21:27

标签: javascript angularjs forms validation angularjs-forms

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

<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>

1 个答案:

答案 0 :(得分:24)

当您使用其名称添加表单标记时,angular会为该.jqplot-xaxis-label{ color: #FF0000; } .jqplot-yaxis-label{ color: #FF0000; } .jqplot-xaxis-tick{ color: #FF0000; } .jqplot-yaxis-tick{ color: #FF0000; } .jqplot-xaxis{ color: #FF0000; } .jqplot-yaxis{ color: #FF0000; } canvas.jqplot-xaxis-label{ color: #FF0000; } div.jqplot-axis.jqplot-xaxis{ color: #FF0000; } 属性值创建一个scope变量&amp;添加具有name属性的表单的所有表单字段。那些字段属性变量get在表单范围对象中创建。与此处一样,您使用name表示myForm包含有关表单字段的所有信息。喜欢使用$scope.myFrom$valid$invalid等的有效性。

您在$error表单元素上使用ng-show="myForm.subnet.$error.pattern"。您错过了在输入字段中添加subnet属性,结果是name="subnet"元素验证在subnet范围变量中无法使用。

<强>标记

myForm

Working Plunkr