'FormControl returning empty value in Angular 2
I am using a form
<form [formGroup]="form">
<input type="text" value={{userDetails.first_name}} formControlName = "firstName">
<button type="submit" data-action="save" (click)="onSubmit(form.value)">
</form>
Here userDetails.first_name value is Tom. It is visible on UI inside text box ; but when I submit form form.firstName is giving me empty value.
Solution 1:[1]
To get the value you should check form.value.firstName not form.firstName.
To have a better idea of how form is structured, do a console.log(this.form) on form submit.
Solution 2:[2]
Declare form group :
private userForm: FormGroup;
Initialize user form like this:
userForm = form.group({
firstName: [firstName, [Validators.required]]
});
Declare your form in HTML like this:
<form class="example-form " [formGroup]="userForm"
(ngSubmit)="onSubmit(userForm)">
<input type="text" value={{userDetails.firstName}} formControlName =
"firstName">
<button type="submit" data-action="save"/>
</form>
Make your onSubmit() method like this:
onSubmit({formValue, valid}: { formValue: UserDetails, valid: boolean }) {
const firstName= value.firstName;
}
Solution 3:[3]
html
<form [formGroup]="form">
<input type="text" formControlName="firstName">
<button type="submit" data-action="save" (click)="onSubmit(form.value)">
</form>
component
you can set value like that
this.form.patchValue({firstName:this.userDetails.first_name});
make sure you create instance of form Group into component
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | crash |
| Solution 2 | |
| Solution 3 | Shailesh Ladumor |
