我添加了一些条件来显示我的修订字段。基本上它会接受一个数字和一个必填字段,所以我添加了一些验证检查。我已从“编辑”视图中排除了此字段。而且我也指定了条件。
ng-show="editMode=='addNew' || editMode=='addDate'"
即使在编辑视图中我的字段没有显示..但某处$ invalid对所有视图都变为
<div class="form-group" ng-show="editMode=='addNew' || editMode=='addDate'">
<label for="editmyRevision" ng-class="{'col-sm-3':editMode=='addNew'}" class="col-md-2 control-label">Revision</label>
<div ng-class="{'col-sm-9':editMode=='addNew'}" class="col-md-10">
<input class="form-control" ng-model="editmyRevision"name="revision" ng-required="editMode=='addNew' || editMode =='addDate'" ng-maxlength="5" ng-Pattern="/^[0-9]*$/"></input>
<span class="has-error help-block" data-ng-show="prodEdit.revision.$invalid">Acceptable formats: 100~99999</span>
</div>
</div>
我在这里做错了什么?
答案 0 :(得分:4)
ng-show
不会从表单中删除输入。它只会为其设置display:none
样式,因此它仍会使表单无效。
请尝试使用ng-if
。
<div class="form-group" ng-if="editMode=='addNew' || editMode=='addDate'">
答案 1 :(得分:1)
代码中有很多error syntax
。 $invalid
申请form
而不是input
。
变化:
<input class="form-control" ng-model="editmyRevision"name="revision" ng-required="editMode=='addNew' || editMode =='addDate'" ng-maxlength="5" ng-Pattern="/^[0-9]*$/"></input>
<span class="has-error help-block" data-ng-show="prodEdit.revision.$invalid">Acceptable formats: 100~99999</span>
要:
<input class="form-control" ng-model="editmyRevision" name="revision" ng-pattern="/^[0-9]{3,5}$/"/>
<span class="has-error help-block" data-ng-show="prodEdit.revision.$error">
Acceptable formats: 100~99999
</span>