表单中的最小长度验证不起作用

时间:2016-08-11 03:14:02

标签: javascript html angular html-form angular2-forms

我试图理解如果我写这样的验证为什么它不起作用并给我奇怪的结果,如果我输入3而不是4并继续下一个字段它运行两个div

  

名称是必需的

     

应该是min 4长度

如果我输入4个字符并继续显示它应该是4长度

<div class="form-group">
    <lable for="secondName">Second Name</lable>

    <input type="text" 
        ngControl='secondName'
        #secondName='ngForm' 
        id="secondName" 
        class="for-control" required
        minlength='4'>

    <div *ngIf='secondName.touched'>

    <div *ngIf='!secondName.valid'>
        Second Name is required
    </div>

    <div *ngIf='!minlength'>
        min length should be 4
    </div>
</div>

2 个答案:

答案 0 :(得分:1)

  • minlength='4'不会设置您可以在html中使用的角度变量。我假设您要检查secondName的长度是否大于3,在这种情况下,您可以将*ngIf写为

    <div *ngIf='secondName.length < 4'>
       min length should be 4
    </div>
    
  • 使用[(ngModel)]绑定secondName代替ngControl

    <input type="text" [(ngModel)]="secondName" >
    

答案 1 :(得分:0)

我不确定这是否是造成问题的原因,但我相信class="for-control" required应为class="form-control" required