【问题标题】:HTML5: Attributes are not recognized after being added with JS / JqueryHTML5:用JS/Jquery添加后属性不识别
【发布时间】:2019-07-12 13:07:28
【问题描述】:

好吧,我被这个困住了。 我正在向输入添加 2 个属性,但 Angular 无法识别它们进行验证。我可能做错了什么?

这是我的 HTML

<input type="text" id="idDOC" class="form-control" [(ngModel)]="person.DOC_PERSON" #kind_doc="ngModel" name="dni_persona"  required>

这是我的组件.ts

document.getElementById("idDOC").setAttribute("maxlenght", "9");
document.getElementById("idDOC").setAttribute("pattern", "^[0-9]{8}$");

这是控制台:(我输入的是:'333333333333')

图案和最大长度在那里!但是在 ng-reflect-model 之后,Idk 发生了什么,有什么建议吗?

提前致谢。

【问题讨论】:

    标签: javascript angular html typescript angular6


    【解决方案1】:

    您的代码中有输入错误

    应该是maxlength 而不是maxlenght

    document.getElementById("idDOC").setAttribute("maxlength", "9");
    

    为什么要直接访问 DOM 来设置属性?这不是 Angular 中的正确做法。您可以直接将其添加到您的模板中。

    【讨论】:

      【解决方案2】:

      试试这个。

      HTML

      <input type="text" id="idDOC" class="form-control" [(ngModel)]="person.DOC_PERSON" 
      #kind_doc="ngModel" name="dni_persona" [maxlength]="maxLength" [pattern]="inputPattern"  required>
      

      JS

      maxLength = 9;
      pattern= /^[0-9]{8}$/;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-06-02
        • 2011-10-26
        • 1970-01-01
        • 2016-09-22
        • 1970-01-01
        • 2020-12-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多