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

标签 javascript html angular forms angular2-forms

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

Name is required

Should be min 4 length

如果我稍后输入 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>

最佳答案

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

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

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

关于javascript - 表单中的最小长度验证不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38886678/

相关文章:

javascript - 使用单选按钮、highcharts、vb.net 从服务器获取数据

javascript - 打印时嵌套 JSON 对象未显示

debugging - IntelliJ IDEA TypeScript/Webpack 调试仅适用于 JavaScript 断点

javascript - 如何在回调中访问正确的“this”?

javascript - 如何添加到 JavaScript 对象

python - 如何使用 python 读取网站上的文本(简单解释)

javascript - 为什么我的函数没有触发 onclick?

javascript - 如何将事件绑定(bind)到模态对话框上的组件?

angular - 为什么 ngrx/store 示例应用程序使用多个商店? (如何设计店铺)

json - Angular2 从 JSON 解析为对象