New to KendoReactStart a free 30-day trial

DateTimePicker disable Set button based on the selected date

Environment

Product Versionv7.2.3
ProductProgress® KendoReact DateTimePicker

Description

I want to enhance the DateTimePicker such that the Set Button is disabled and the component appears as invalid based on a the selected date. For example, I do not want to allow the user to selected any dates that are after today's date.

Solution

You can achieve this by rendering a custom Calendar component for the DateTimePicker using its calendar property. This allows getting the selected date by the user and compare it with a certain condition (ex: if the date is after today's date).

In order to disable selecting a certain date based on the condition, you can add the k-disabled class to the k-time-accept DOM element, and remove it when the condition is true. Moreover, set a valid state variable to either true or false based on the condition, and pass it to the valid property of the DateTimePicker. This is done in order to highlight the component with a red border when the condition is false.

jsx
if (date1 <= date2) {
    document.getElementsByClassName('k-time-accept')[0].classList.remove('k-disabled');
    setValid(true);
} else {
    document.getElementsByClassName('k-time-accept')[0].classList.add('k-disabled');
    setValid(false);
}

This is an example that demonstrates this approach.

Change Theme
Theme
Loading ...

For more information on customizing the Calendar of the DateTimePicker, and using its valid prop, check the following article respectively:

In this article
EnvironmentDescriptionSolution
Not finding the help you need?
Contact Support