Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Angular 2 Reactive Forms - Detect input change event on component

I would like to detect the value of change event to the input on form.component.ts. I would not like to call the function ex: (onChange) = "function($event.target.value)"

public form: FormGroup;  constructor(private formBuilder: FormBuilder){   }  private loadForm(){     this.form = this.formBuilder.group({         tipo: [null, Validators.required],         nomeRazao: [null, Validators.compose([Validators.required, Validators.minLength(3), Validators.maxLength(64)])],         apelidoFantasia: [null, Validators.compose([Validators.required, Validators.minLength(3), Validators.maxLength(64)])],         cpfCnpj: [null, Validators.compose([Validators.required, Validators.minLength(11), Validators.maxLength(14)])],         rgIe: [null],         contato: this.formBuilder.group({             email: [null],             telefone: [null]         }),         endereco: this.formBuilder.group({             cep: [null, Validators.pattern('^([0-9]){5}([-])([0-9]){4}$')],             uf: [null],             cidade: [null],             bairro: [null, Validators.required],             logradouro: [null],             complemento: [null],             numero: [null, Validators.pattern('/^\d+$/')]         })     }); }  ngOnInit() {     this.loadForm(); } 
like image 592
Rafael L R Avatar asked Jun 09 '17 14:06

Rafael L R


People also ask

How does Angular check changes form?

In Angular we have observables which subscribe to form value changes. what you have to do is, subscribe to the form instance and detect any changes to the form. Suppose you don't want to include save button on your form. whenever user change any thing in the form save data to the server.

How do I change value in Reactive form?

Setting or Updating of Reactive Forms Form Control values can be done using both patchValue and setValue. However, it might be better to use patchValue in some instances. patchValue does not require all controls to be specified within the parameters in order to update/set the value of your Form Controls.

What is FormBuilder in Reactive forms?

The FormBuilder service is an injectable provider that is provided with the reactive forms module. We will inject this dependency by adding it to the component constructor. File name : employeeDetails-editor.component.ts. 1constructor(private fb: FormBuilder) { } typescript.


2 Answers

You can subscribe to your form changes by using this :

this.form.valueChanges.subscribe(() => {    if (this.registerForm.controls['yourControlName'].value === 'someValue') {       //     }  }); 
like image 165
oubchid Avatar answered Oct 26 '22 20:10

oubchid


For detecting changes in value of a particular field, 'valueChanges' event on that field can be subscribed, as shown below:

this.myForm.get('formcontrolname').valueChanges.subscribe(val => {     this.message = val;   }); 
like image 23
Dipendu Paul Avatar answered Oct 26 '22 20:10

Dipendu Paul