Having trouble getting help?
Contact Support
Contact Support
Value change in EJ2 TypeScript Drop down list control
2 May 20233 minutes to read
You can check about whether value change happened by manual or programmatic by using change event argument that argument name is isInteracted
.
The following example demonstrate, how to check whether value change happened by manual or programmatic.
import { DropDownList } from '@syncfusion/ej2-dropdowns';
//define the array of complex data
let sportsData: { [key: string]: Object }[] = [
{ Id: 'game1', Game: 'Badminton' },
{ Id: 'game2', Game: 'Football' },
{ Id: 'game3', Game: 'Tennis' }
];
//initiate the DropDownList
let dropDownListObject: DropDownList = new DropDownList({
// bind the sports Data to datasource property
dataSource: sportsData,
// maps the appropriate column to fields property
fields: { text: 'Game', value: 'Id' },
//set the placeholder to DropDownList input
placeholder:"Select a game",
// bind change event handler
change: onChange
});
//render the component
dropDownListObject.appendTo('#ddlelement');
// Set value dynamically
document.getElementById('btn').onclick = () => {
dropDownListObject.value = 'game3';
}
function onChange(args): void {
let element: HTMLElement = document.createElement('p');
if (args.isInteracted) {
element.innerText = 'Changes happened by Interaction';
} else {
element.innerText = 'Changes happened by programmatic';
}
document.getElementById('event').append(element);
}
<!DOCTYPE html>
<html lang="en">
<head>
<title>Essential JS 2 DropDownList</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Typescript UI Controls" />
<meta name="author" content="Syncfusion" />
<link href="styles.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/29.1.33/ej2-base/styles/material.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/29.1.33/ej2-inputs/styles/material.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/29.1.33/ej2-dropdowns/styles/material.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.38/system.js"></script>
<script src="systemjs.config.js"></script>
<script src="https://cdn.syncfusion.com/ej2/syncfusion-helper.js" type ="text/javascript"></script>
</head>
<body>
<div id='loader'>LOADING....</div>
<div id='container' style="margin:0 auto; width:250px;">
<br>
<input type="text" id='ddlelement' />
</div>
<button id='btn' class='e-control e-btn'> Set value dynamically </button>
<p id='event'> </p>
</body>
</html>