Having trouble getting help?
Contact Support
Contact Support
Prevent State Change in EJ2 TypeScript Switch control
14 Dec 20242 minutes to read
The beforeChange event is triggered before the switch’s state is altered. This event provides an opportunity to intercept and potentially cancel the change action before it is applied. It allows for implementing conditional logic or validating the change prior to it being rendered on the UI.
import { Switch, BeforeChangeEventArgs } from '@syncfusion/ej2-buttons';
import { enableRipple } from '@syncfusion/ej2-base';
enableRipple(true);
// Initialize Switch component.
let switchObj: Switch = new Switch({ checked: true, beforeChange: beforeChange });
// Render initialized Switch.
switchObj.appendTo('#element');
function beforeChange(args: BeforeChangeEventArgs) {
// Set cancel to true to prevent the switch state change
args.cancel = true;
}
<!DOCTYPE html>
<html lang="en">
<head>
<title>EJ2 Switch</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="https://cdn.syncfusion.com/ej2/29.1.33/ej2-base/styles/fabric.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/29.1.33/ej2-buttons/styles/material.css" rel="stylesheet" />
<link href="styles.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'>
<input type='checkbox' id='element' />
</div>
</body>
</html>
#container {
visibility: hidden;
margin-left: 10px;
}
#loader {
color: #008cff;
height: 40px;
width: 30%;
position: absolute;
top: 45%;
left: 45%;
}
.e-switch-wrapper {
margin-top: 18px;
}