Strict mode in EJ2 TypeScript Datetimepicker control
26 Apr 20236 minutes to read
The strictMode
is an act, that allows the user to enter only the valid date and time within the specified min/max range in textbox. If the input entered is invalid, then the component will stay with the previous value. Else, if the date and time is
out of range, then the component will set the date to the min/max value.
The following example demonstrates the DateTimePicker in strictMode
with min/max range of 5/5/2019 2:00 AM
to 5/25/2019 2:00 AM
. Here, it allows to enter only the valid date and time within the specified range. If you are trying to enter the out-of-range value as
like 5/28/2019
, then the value will set to the max
value as 5/25/2019 2:00 AM
. Since the value 28 is greater than to max
value
of 25. Or else if you are trying to enter the invalid date, then the value will stay with the previous value.
import { DateTimePicker } from '@syncfusion/ej2-calendars';
// creates a dateTimepicker with strictMode property
let datetimepickerObject: DateTimePicker = new DateTimePicker({
// sets the strictMode
strictMode: true,
// sets the value
value: new Date('5/28/2019 2:00 AM'),
//sets the min
min: new Date('5/5/2019 2:00 AM'),
//sets the max
max: new Date('5/25/2019 2:00 AM')
});
datetimepickerObject.appendTo('#element');
<!DOCTYPE html>
<html lang="en">
<head>
<title>Essential JS 2 DateTimePicker control</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" />
<!--style reference from the DateTimePicker component-->
<link href="https://cdn.syncfusion.com/ej2/27.2.2/ej2-base/styles/material.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/27.2.2/ej2-buttons/styles/material.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/27.2.2/ej2-inputs/styles/material.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/27.2.2/ej2-popups/styles/material.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/27.2.2/ej2-lists/styles/material.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/27.2.2/ej2-calendars/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'>
<input id='element' type="text" />
</div>
</body>
</html>
By default, the DateTimePicker act in strictMode false
state, that allows to enter the invalid or out-of-range datetime in textbox.
If the datetime is out-of-range or invalid, then the model value will be set to out of range
datetime value or null
respectively with highlighted error
class to indicates the datetime is out of range or invalid.
The following example demonstrates the strictMode
as false
. Here, it allows to enter the valid or invalid value in textbox. If you are entering the out-of-range or invalid datetime value, then the model value will be set to out of range
datetime value or null
respectively with highlighted error
class to indicates the datetime is out of range or invalid.
import { DateTimePicker } from '@syncfusion/ej2-calendars';
// creates a datetimepicker with strictMode property
let datetimepickerObject: DateTimePicker = new DateTimePicker({
// sets the value
value: new Date('5/25/2017 4:00 PM'),
//sets the min
min: new Date('5/5/2017 2:00 PM'),
//sets the max
max: new Date('5/25/2017 3:00 PM'),
// sets the placeholder
placeholder: 'Select a date and time'
});
datetimepickerObject.appendTo('#element');
<!DOCTYPE html>
<html lang="en">
<head>
<title>Essential JS 2 DateTimePicker control</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" />
<!--style reference from the DateTimePicker component-->
<link href="https://cdn.syncfusion.com/ej2/27.2.2/ej2-base/styles/material.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/27.2.2/ej2-buttons/styles/material.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/27.2.2/ej2-inputs/styles/material.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/27.2.2/ej2-popups/styles/material.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/27.2.2/ej2-lists/styles/material.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/27.2.2/ej2-calendars/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'>
<input id='element' type="text" />
</div>
</body>
</html>
If the value of
min
ormax
properties changed through code behind, then you have to update thevalue
property to set within the range.