A new version of the jSuites JavaScript Calendar plugin is available here.
jSuites Calendar v5
JavaScript Calendar Picker
Introducing our JavaScript Calendar - a lean, responsive web component plugin that combines the functionality of a calendar, date picker, and date-time picker. Designed to deliver an exceptional user experience across various devices, this lightweight JavaScript tool is a valuable addition to any web application, simplifying date selection and enhancing overall usability.
- React, Angular, VueJS compatible;
- Mobile friendly;
- Date picker;
- Time picker;
- Year-month picker;
- Several events and easy integration;
- JS plugin or web component;
Examples
Web component Date Picker
How to embed a simple web component calendar input in your application.
<html>
<script src="https://jsuites.net/v4/jsuites.js"></script>
<script src="https://jsuites.net/v4/jsuites.webcomponents.js"></script>
<link rel="stylesheet" href="https://jsuites.net/v4/jsuites.css" type="text/css" />
<jsuites-calendar value="2020-01-20"></jsuites-calendar>
<script>
document.querySelector('jsuites-calendar').addEventListener('onchange', function(e) {
    console.log('New value: ' + e.target.value);
});
document.querySelector('jsuites-calendar').addEventListener('onclose', function(e) {
    console.log('Calendar is closed');
});
</script>
</html>
How to create an HTML calendar input
Create a basic HTML date and time input using pure JavaScript.
<html>
<script src="https://jsuites.net/v4/jsuites.js"></script>
<link rel="stylesheet" href="https://jsuites.net/v4/jsuites.css" type="text/css" />
<input id='calendar' />
<script>
jSuites.calendar(document.getElementById('calendar'),{
    format: 'DD/MM/YYYY HH:MM',
    time: true,
});
</script>
</html>
React integration
Using the JavaScript calendar via NPM.
Install
npm install jsuites
Component
import jSuites from "jsuites";
import { useRef, useEffect } from "react";
import jSuites from "jsuites";
import "jsuites/dist/jsuites.css";
export default function Calendar({ options }) {
  const calendarRef = useRef(null);
  useEffect(() => {
    jSuites.calendar(calendarRef.current, options);
  }, [options]);
  return <input ref={calendarRef} />;
}
Documentation
Methods
| Method | Description | 
|---|---|
| calendar.open(); | Open the javascript calendar picker | 
| calendar.close(ignoreEvents); | Close the calendar @param int ignoreEvents - Do no execute onclose event | 
| calendar.getValue(); | Get the current selected date | 
| calendar.setValue(newValue); | Set a new value for the javascript calendar and time picker @param mixed newValue - New date should be set as YYYY-MM-DD HH:MM:SS | 
| calendar.reset(); | Reset the input value | 
| calendar.next(); | Go to the next month | 
| calendar.prev(); | Go to the previous month | 
Events
| Method | Description | 
|---|---|
| onchange | Trigger a method when value is changed. | 
| onupdate | Trigger a method when any information change in the calendar picker. | 
| onclose | Trigger a method when the calendar is closed. | 
| onopen | Trigger a method when the calendar is closed. | 
Initial settings
| Property | Description | 
|---|---|
| type: string | Picker type: default | 
| validRange: [ date, date ] | Date selection would be disabled out of this range. Default: null | 
| startingDay: number | Starting weekday - 0 for sunday, 6 for saturday. Default: 0 (Sunday) | 
| format: string | Date format. Default: YYYY-MM-DD | 
| readonly: boolean | Input will be disabled for manual changes. | 
| today: boolean | If no value is default, open teh calendar on today as default. Default: false | 
| time: boolean | Include a time picker on the calendar. Default: false | 
| resetButton: boolean | Show reset button. Default: true | 
| placeholder: string | Placeholder instructions | 
| months: array | Month short names. Default: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] | 
| monthsFull: array | Month short names. Default: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] | 
| weekdays: array | Weekday names. Default: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'] | 
| weekdays_short: array | Weekday short names. Default: ['S', 'M', 'T', 'W', 'T', 'F', 'S'] | 
| value: string | Default date. | 
| fullscreen: boolean | Render in fullscreen. Default: true for screenWidth: 800px | 
| opened: boolean | Calendar starts opened. Default: false. | 
| textDone: string | Text of the 'Done' button | 
| textReset: string | Text of the 'textReset' button | 
| textUpdate: string | Text of the 'Update' button |