以下是我需要验证的<input>
代码:
<input ng-minlength="0" name="name" ng-maxlength="10" ng-model="name" required/>
我准备了两条错误消息:
<small ng-show="userForm.name.$error.minlength">Too short</small>
<small ng-show="userForm.name.$error.required">Required</small>
但是当<input>
为空时,只显示所需的错误消息,这种情况也与最小长度错误情况相符,我怎么能让这两条错误信息都显示出来?
答案 0 :(得分:1)
您已将minlength用作0并且还使用了必需属性。因此@Tj Gienger评论说,最小长度为1是必要的。
如果没有ngRequired参数,minlength参数意味着如果用户输入了一个值,则其长度必须至少为n
个字符,但可以将该字段留空。您还需要在使用min-length时设置ngRequired。
在this示例(解决方法)中,我使用了minlength 5和max length 10.
<input ng-minlength="5" name="name" ng-maxlength="10" ng-model="myname" ng-required="true"/>
<div ng-show="userForm.name.$error.minlength">Too short</div>
<div ng-show="userForm.name.$error.required">Required</div>
<div ng-show="userForm.name.$error.required">Too short</div>
答案 1 :(得分:0)
如前所述,你需要1分钟的最小长度。
除此之外:角度中的大多数(如果不是全部)验证器(当然要求除外)如果值为空则返回true。
请点击此处查看示例:https://github.com/angular/angular.js/blob/master/src/ng/directive/validators.js#L87
所以这实际上是按设计进行的,你可以做很多事情,但要编写自己的验证器。
答案 2 :(得分:0)
正如Navaneeth已经提到的那样,将你的minlength更改为大于0 minlength消息将仅在你的标准不符合时显示,所以当文本框为空时,它的长度将为0,它等于你设置的minlength值。 / p>