Angular 5自动填充表单Keyup,KeyDown和KeyPress

时间:2019-06-18 05:30:10

标签: angular typescript

嗨,我正在使用反应形式,我在那儿有一个部分,希望将值填充到另一个字段中

现在由于某种原因,当我使用浏览器中保存的值时,它无法完全填充电子邮件。它只需要接收电子邮件的首字母,有时在我手动填写电子邮件表格时会发生这种情况。

这是我的代码的实时示例。

https://stackblitz.com/edit/angular-5l9kb4

1 个答案:

答案 0 :(得分:1)

已更新

fillForm() {
  this.myForm.valueChanges.subscribe(value => {
    //I'm using .controls and .get, but both work here. Pick the one you prefer
    this.myForm.controls['second_phone'].setValue(value.phone, { emitEvent: false});
    this.myForm.get('second_email').setValue(value.email, { emitEvent: false});
  });
}

如果需要,您还可以在{ onlySelf: true }中使用setValue(参考: Angular 2 - FormControl setValue 'onlySelf' parameter

并从模板的辅助字段中删除:value="{{myForm.get('email').value}}"


不是最好的方法

尝试一下:

fillForm() {
    this.myForm.valueChanges.subscribe(value => {
      if ((!value.second_email && value.email) || (!value.second_phone && value.phone)) {
          value.second_phone = value.phone;
          value.second_email = value.email;
      } 
    });
  }