Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <form [formGroup]="myForm">
- <p>Language</p>
- <div *ngFor="let data of languages let i = index">
- <input type="checkbox" (change)="onChange(data.name, $event.target.checked)"> {{data.name}}<br>
- </div>
- <p>Age List</p>
- <button (click)="checkAll()">Check all</button>
- <button (click)="deselectAll()">Deselect all</button>
- <div *ngFor="let data of ages let j = index">
- <input type="checkbox" (change)="onAgeChange(data.name, $event.target.checked)"> {{data.name}}<br>
- </div>
- </form>
- <pre>Form values: {{myForm.value | json}}</pre>
- ages = [{ ageID: 100 ,name: "0 -10 years" }, {ageID: 200 ,name: "10 -20 years" }, {ageID: 300 ,name: "30 -40 years" }, { ageID: 400 ,name: "40 -50 years" }]
- languages = [{ langID: 1 ,name: "English" }, {langID: 2 ,name: "Tamil" }, {langID: 3 ,name: "Hindi" }, { langID: 4 ,name: "French" }]
- myForm: FormGroup;
- constructor(private fb: FormBuilder) { }
- ngOnInit() {
- this.myForm = this.fb.group({
- userage: this.fb.array([]),
- userlanguage: this.fb.array([])
- });
- }
- onChange(language: string, isChecked: boolean) {
- const languageFormArray = <FormArray>this.myForm.controls.userlanguage;
- if (isChecked) {
- languageFormArray.push(new FormControl(language));
- } else {
- let index = languageFormArray .controls.findIndex(x => x.value == language)
- languageFormArray .removeAt(index);
- }
- }
- onAgeChange(age : string, isChecked: boolean) {
- const ageFormArray = <FormArray>this.myForm.controls.userage;
- if (isChecked) {
- ageFormArray.push(new FormControl(age));
- } else {
- let index = ageFormArray.controls.findIndex(x => x.value == age)
- ageFormArray.removeAt(index);
- }
- }
- checkAll(){
- const languageFormArray = <FormArray>this.myForm.controls.userlanguage;
- //console.log(this.myForm.controls['userage'])
- this.myForm.controls['userage'].setValue(
- this.myForm.controls['userage'].value
- .map(value => true)
- );
- }
Add Comment
Please, Sign In to add comment