How to add onchange event on dropdown in angular, Read More !!!
To prevent page refresh while performing the onchange event on dropdown in angular set,
onclick="return false"
as false.
Here is the output.
Component code
<div class="col-lg-6">
<div class="row">
<div class="col-12 pt-0 pb-2" style="background-color: #e9e6e6">
<div class="row mt-2">
<div class="col-6 text-left">
<div class="dropdown">
<button
class="btn btn-secondary dropdown-toggle"
type="button"
id="dropdownMenuButton"
data-toggle="dropdown"
>
Gujarat
</button>
<div class="dropdown-menu">
<a
class="dropdown-item"
href="#"
*ngFor="let DisplayName of StateName"
onclick="return false"
(click)="onProjectChange($event)"
>{{ DisplayName }}</a
>
</div>
</div>
</div>
</div>
</div>
<div
class="col-11 mx-auto mt-1 text-white text-center pt-2 pb-2 mx-auto rounded font-weight-bold"
style="background-color: #718d97; font-family: 'Arial Narrow'"
>
State Inforamtion
</div>
<div class="col-12">
<table class="table table-borderless">
<tr>
<td>State Name</td>
<td>
<span [ngSwitch]="DisplayName">
<span *ngSwitchCase="'Gujarat'" style="color:hotpink">{{
DisplayName
}}</span>
<span *ngSwitchCase="'Rajasthan'" style="color: blue">{{
DisplayName
}}</span>
<span *ngSwitchCase="'Punjab'" style="color: red">{{
DisplayName
}}</span>
<span *ngSwitchDefault style="color: chartreuse">{{
DisplayName
}}</span>
</span>
</td>
</tr>
</table>
</div>
</div>
</div>
Typescript file code
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-prac-task',
templateUrl: './prac-task.component.html',
styleUrls: ['./prac-task.component.scss']
})
export class PracTaskComponent implements OnInit {
StateName: string[] = [];
DisplayName: string = "";
constructor() { }
ngOnInit(): void {
this.StateName = ['Gujarat', 'Rajasthan', 'Punjab', 'Haryana'];
}
onProjectChange($event: any)
{
console.log($event.target.innerHTML.trim());
if ($event.target.innerHTML.trim() == "Gujarat")
{
this.DisplayName = "Gujarat";
} else if ($event.target.innerHTML.trim() == 'Rajasthan')
{
this.DisplayName = "Rajasthan";
} else if ($event.target.innerHTML.trim() == 'Punjab')
{
this.DisplayName = "Punjab";
} else if ($event.target.innerHTML.trim() == 'Haryana')
{
this.DisplayName = "Haryana";
}
}
}