【问题标题】:Input field with validation crashes when typing fast in Angular 2在 Angular 2 中快速输入时带有验证的输入字段崩溃
【发布时间】:2016-05-09 08:39:17
【问题描述】:

我在 Angular 2 中有一个使用 Validators 进行简单验证的表单。

html 模板

<form role="form" #myForm="ngForm" (ngSubmit)="submit()" novalidate [ngFormModel]="form">
    <div class="form-group  list-element">
        <label for="name">name*</label>
        <input type="text" name="name" class="form-control" ngControl="name"
               #name="ngForm" placeholder="Enter name" [(ngModel)]=user.name >
    </div>
</form>

用于验证的 ControlGroup

ngOnInit() {    
    this.form = new ControlGroup({
      name: new Control('', Validators.compose([
        Validators.required,
        Validators.pattern("(([a-zA-Z ]|[0-9])+)*"),
        Validators.minLength(5),
        Validators.maxLength(80)
      ]))
    });
  }

当我在输入字段(例如#1KZBZKBjkndedjk@@@kjbzdzdékj!)中键入快速(随机)字符时,应用程序崩溃。这并不总是发生,所以我还没有真正注意到一种模式。

这是崩溃发生的地方,所以我认为崩溃与模式有关。

【问题讨论】:

    标签: forms validation angular


    【解决方案1】:

    这是一个已知问题 https://github.com/angular/angular/issues/7822 并且可能会在此拉取请求到达 https://github.com/angular/angular/pull/7421 时得到修复

    【讨论】:

      【解决方案2】:

      首先这与 AngularJS 无关。

      发生这种情况是因为您的模式错误我不知道您需要什么模式,但例如,如果您需要验证电子邮件,请使用此模式 & 只需检查您的模式即可。

      你的代码....

      Validators.pattern("^[_a-z0-9]+(.[_a-z0-9]+)@[a-z0-9-]+(.[a-z0-9- ]+)(.[a-z]{2,4})$"),

      您的代码结束...

      就是这样!

      【讨论】:

        猜你喜欢
        • 2017-07-29
        • 2023-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多