Search code examples
javascriptreactjsreact-datepicker

React datepicker disable entering date manually


I am using React date-picker for my form. Currently it's working well, but the user can delete the date and enter whatever values. How do I restrict it?

This is my code:

import DatePicker from "react-datepicker";

    <DatePicker
    name="invoiceDate"
    className="form-control form-control-sm"
    type="text"
    size="sm"
    placeholder=""
    selected={date}
    minDate={new Date()}
    value={values.setDate}
    onChange={datePickerChange}
    dateFormat="dd/MM/yyyy"
    />

Solution

  • Just add this line of code to DatePicker :

    onKeyDown={(e) => {
        e.preventDefault();
    }}
    

    After adding this event, your component's code will be like the below code :

    <DatePicker
        name="invoiceDate"
        className="form-control form-control-sm"
        type="text"
        size="sm"
        placeholder=""
        selected={date}
        minDate={new Date()}
        value={values.setDate}
        onChange={datePickerChange}
        dateFormat="dd/MM/yyyy"
        onKeyDown={(e) => {
           e.preventDefault();
        }}
      />
    

    Edit patient-silence-ybz45