Angular 5 表单重复输入值

标签 angular angular-reactive-forms

我有一个简单的表格:

this.searchForm = this.formBuilder.group({
  query: [ null, [Validators.required] ]
});

当用户将某些内容粘贴到输入中时,我使用正则表达式重新格式化值并更新表单。

onPaste(event) {
    const formattedQuery = event.clipboardData.getData('text/plain')
      .split(/,?[\r\n\t]+\s?/)
      .join(', ')
      .replace(/,\s?$/g, '');

    this.searchForm.get('query').setValue(formattedQuery);
    // this.ref.detectChanges();
  }

但是,例如,当我粘贴某些内容时

325435956
325435956

它重复了它,因此我看到 325435956, 325435956 325435956 325435956 但我希望看到 325435956, 325435956。我的错误在哪里以及如何解决?

您可以在此处找到工作示例 https://stackblitz.com/edit/angular-cp9yhx?file=app%2Fhello.component.ts

最佳答案

即使您处理粘贴功能,默认行为也保持不变。

因此,它首先处理该方法并打印出预期值。然后按原样粘贴值。

您应该阻止默认行为。

onPaste(event) {
    event.preventDefault();

    //rest of the method as it is right now
}

固定示例:https://stackblitz.com/edit/angular-7orqb9?file=app/hello.component.ts

关于Angular 5 表单重复输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47711820/

相关文章:

angular - 在 ngFor 中有一个 mat-radio-button 与 Reactive Forms 一起使用

angular - 如何订阅 formGroup 更改并计算其他两个属性之一?

angular - 无法绑定(bind)到 'ngModel',因为它不是 'input' 的已知属性,尽管导入了 FormsModule

angular - 在 Angular 6中从浏览器控制台调用服务功能

angular - Ionic3/Angular 错误 : Must supply a value for form control with name: 'jobStatus'

angular - 如何在 Angular 4 中实现自动保存 react 形式?

Angular2显示/隐藏子元素的局部变量值

java - 如何从 Angular 2 应用程序执行驻留在服务器上的 Java 代码?

javascript - FormArray 的 Angular .removeAt(i) 不会在 DOM 中更新 - Angular

angular - 如何在另一个表单构建器上的对象上设置值 - Typescript