Dhileepan S J
Dhileepan S J

Reputation: 295

How to read form values in controller?

I am beginner in Angular 2 and I am trying get a value of textbox in component and I really don't know how to get it.

HTML :

<form [formGroup]="regForm" >
                <label for="txtFName">First Name</label>
                <input type="text" id="txtFName"/>
</form>

component.ts :

import { Component } from "@angular/core"
import { FormControl, FormGroup, FormBuilder, Validator, Validators,ReactiveFormsModule } from "@angular/forms";
import { customer } from '../model/customerModel'
import { Router } from "@angular/router";

export class regComponent
{
    private Customer:customer;
    private regForm:FormGroup;
    private firstName:FormControl;

    constructor (private formBuilder:FormBuilder,private router:Router)
    {

        this.firstName=new FormControl('',[Validators.required])

        this.regForm=formBuilder.group({
        firstName:this.firstName
    })

console.log(this.regForm.value);
}

here I am getting empty value in the console. Please help in this regard

Upvotes: 28

Views: 92606

Answers (3)

abedfar
abedfar

Reputation: 1999

For below control, named email:

ngOnInit() {
    this.contactForm = this.formBuilder.group({
      email: [null, Validators.compose([Validators.required])]
    });
  }

Access by the name you gave to the control:

this.formGroup.controls['email'].value

Upvotes: 5

AddWeb Solution Pvt Ltd
AddWeb Solution Pvt Ltd

Reputation: 21681

import { Component, OnInit } from '@angular/core';
import { FormBuilder, Validators } from '@angular/forms';


@Component({
  selector: 'demo-app',
  templateUrl: 'app/app.component.html'
})

export class regComponent implements OnInit {

private regForm:any;
    constructor(private formBuilder: FormBuilder) { 
    }
    ngOnInit(){
        this.regForm=formBuilder.group({
          firstName:['', Validators.required]
         })
    }

     saveUser() {
        if (this.regForm.dirty && this.regForm.valid) {
          alert(`FirstName: ${this.regForm.value.firstName}`);
        }
      }
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<form [formGroup]="regForm" (submit)="saveUser()" >
          <label for="txtFName">First Name</label>
          <input type="text" id="txtFName"  formControlName="firstName" #firstName="ngControl"/>
          <button type="submit" [disabled]="!userForm.valid">Submit</button>
        </form>

Upvotes: 4

Sachila Ranawaka
Sachila Ranawaka

Reputation: 41417

Add formControlName to input

<input type="text" id="txtFName" formControlName="firstName" />

Now access the value by name

this.regForm.get('firstName').value

Upvotes: 56

Related Questions