Vanilla JS Datepicker is a flexible, robust, accessible, multilingual, and nonspecific date and date range picker framework for modern web design.
Inspired by the bootstrap-date picker, it works with the most popular front-end frameworks like Bootstrap, Bulma, Foundation, etc.
Main options:
- Date picker (dropdown entry, included), date range picker
- Keyboard operation support (arrow keys navigation, input field editing)
- I18n support (languages, CSS based text direction detection)
- Easily customizable to adapt the style sheet to different CSS frameworks
- Dependency is free
- Designed for Modern Browsers – Does not support IE
- Lightweight (good, relatively …) – 33 KB (compact, uncompressed)
JQuery Plugin for Custom Select Dropdown With Search Box | Amsifyselect.js
How to make use of it:
1. Include the stylesheet within the head part of the doc.
<!-- Standalone --> <link href="dist/css/datepicker.min.css" rel="stylesheet" /> <!-- For Bootstrap 4 --> <link href="dist/css/datepicker-bs4.min.css" rel="stylesheet" /> <!-- For Bulma --> <link href="dist/css/datepicker-bulma.min.css" rel="stylesheet" /> <!-- For Foundation --> <link href="dist/css/datepicker-foundation.min.css" rel="stylesheet" />
2. Include the primary JavaScript and native information on the finish of the doc.
<script src="dist/js/datepicker.min.js"></script> <script src="dist/js/locales/fr.min.js"></script>
3. Or embrace the all-in-on JS as follows:
<script src="dist/js/datepicker-full.min.js"></script>
4. Create an inline date picker and outline the chosen date within the data-date
attribute.
<div id="inline" data-date="01/05/2020"></div>
5. Attach the date picker to an input subject you specify.
<input type="text" name="datepicker">
const elem = document.querySelector('input[name="datepicker"]'); const datepicker = new Datepicker(elem, { // options here });
6. Create a date vary picker from two input fields as follows:
<div id="range"> <input type="text" name="start"> <span>To</span> <input type="text" name="end"> </div>
const elem = document.getElementById('range'); const dateRangePicker = new DateRangePicker(elem, { // options here });
7. Default choices & callback features for the date picker.
const datepicker = new Datepicker(elem, { // Whether or not to close the datepicker immediately when a date is selected. autohide: false, // Whether or not to show week numbers to the left of week rows. calendarWeeks: false, // If true, displays a "Clear" button at the bottom of the datepicker to clear the input value. // If 'autoclose' is also set to true, this button will also close the datepicker. clearBtn: false, // Delimiter string to separate the dates in a multi-date string. dateDelimiter: ',', // Array of date strings or a single date string formatted in the given date format. datesDisabled: [], // Days of the week that should be disabled. // Values are 0 (Sunday) to 6 (Saturday). // Multiple values should be comma-separated. Example: disable weekends: '06' or '0,6' or [0,6]. daysOfWeekDisabled: [], // Days of the week that should be highlighted. Values are 0 (Sunday) to 6 (Saturday). daysOfWeekHighlighted: [], // Date to view when initially opening the calendar. // Date, String or Object with keys year, month, and day. // Defaults to today() by the program defaultViewDate: undefined, // If true, no keyboard will show on mobile devices. disableTouchKeyboard: false, // Date format string. format: 'mm/dd/yyyy', // The date format, combination of d, dd, D, DD, m, mm, M, MM, yy, yyyy. language: 'en', // Maximum limit to selectable date. No limit is applied if null is set. maxDate: null, // Maximum number of dates users can select. No limit is applied if 0 is set. maxNumberOfDates: 1, // Muximum limit to the view that the date picker displayes. 0:days – 3:decades. maxView: 3, // Minimum limit to selectable date. No limit is applied if null is set. minDate: null, // HTML (or plain text) for the button label of the "Next" and "Prev" button. nextArrow: '»', prevArrow: '«', // left|right|auto for horizontal and top|bottom|auto for virtical. orientation: 'auto', // Whether or not to show the day names of the week. showDaysOfWeek: true, // If false, the datepicker will be prevented from showing when the input field associated with it receives focus. showOnFocus: true, // Show the date picker when the associated input filed is clicked showOnClick: true, // The view that the datepicker should show when it is opened. // Accepts: 0 or "days" or "month", 1 or "months" or "year", 2 or "years" or "decade", 3 or "decades" or "century", and 4 or "centuries" or "millenium". // Useful for date-of-birth datepickers. startView: 0, // The string that will appear on top of the datepicker. If empty the title will be hidden. title: '', // If true or "linked", displays a "Today" button at the bottom of the datepicker to select the current date. // If true, the "Today" button will only move the current date into view; // if "linked", the current date will also be selected. todayBtn: false, // 0 focus Move the focused date to the current date without changing the selection // 1 select Select (or toggle the selection of) the current date todayBtnMode: 0, // If true, highlights the current date. todayHighlight: false, // Update the selected date(s) with the input field's value when the input field is losing focus updateOnBlur: true, // The level that the date picker allows to pick. 0:date,1: month or 2:year pickLevel: 0, // Day of the week start. 0 (Sunday) to 6 (Saturday) weekStart: 0, // A function that takes a date as a parameter and returns one of the following values: beforeShowDay: function(date){ /* Return: {Object} - Things to customize. Available properties are: enabled: {Boolean} - whether the cell is selctable classes: {String} - space-sparated additional CSS classes for the cell element content: {String} - HTML for the cell element's child nodes {String} - additional classes — same as returning { classes: additionalClasses } {Boolean} - whether the cell is selctable — same as returning { enabled: isSelectable } /* } beforeShowDecade: function(date){ /* Return: {Object} - Things to customize. Available properties are: enabled: {Boolean} - whether the cell is selctable classes: {String} - space-sparated additional CSS classes for the cell element content: {String} - HTML for the cell element's child nodes {String} - additional classes — same as returning { classes: additionalClasses } {Boolean} - whether the cell is selctable — same as returning { enabled: isSelectable } /* } beforeShowMonth: function(date){ /* Return: {Object} - Things to customize. Available properties are: enabled: {Boolean} - whether the cell is selctable classes: {String} - space-sparated additional CSS classes for the cell element content: {String} - HTML for the cell element's child nodes {String} - additional classes — same as returning { classes: additionalClasses } {Boolean} - whether the cell is selctable — same as returning { enabled: isSelectable } /* } beforeShowYear: function(date){ /* Return: {Object} - Things to customize. Available properties are: enabled: {Boolean} - whether the cell is selctable classes: {String} - space-sparated additional CSS classes for the cell element content: {String} - HTML for the cell element's child nodes {String} - additional classes — same as returning { classes: additionalClasses } {Boolean} - whether the cell is selctable — same as returning { enabled: isSelectable } /* } });
8. Additional settings for the date range picker.
const dateRangePicker = new DateRangePicker(elem, { // Whether to allow one side of the date-range to be blank. allowOneSidedRange: false, // Input fields to attach start- and end-date pickers. Must contain 2 items. input: input });
9. Available props & strategies.
// Determines if the date picker is shown Datepicker.active // Adds new locals Datepicker.locales.en = { days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], today: "Today", clear: "Clear", titleFormat: "MM y", format: "mm/dd/yyyy", weekstart: 0 } // Formats a date Datepicker.formatDate(date, format, lang); // Parses date strings Datepicker.parseDate(dateStr, format, lang); // Shows the date picker instance.show(); // Refreshes a date picker instance.refresh(target, forceRender); // Destroys the date picker instance.destroy(); // Updates the date picker instance.update(options); // Updates options instance.setOptions(options); // Sets selected date(s) instance.setDate( date1 [, date2 [, ... dateN ]][, options ] ); instance.setDate( dates [, options ] ); instance.setDate( [ options ] ); // Returns a Date object of selected date instance.getDate(format); // Updates options of the date range picker rangepicker.setOptions(options); // Get the start and end dates of the date range picker rangepicker.getDate(format); // Destroys the date range picker rangepicker.destory();
10. Event handlers.
instance.addEventListener('changeDate', function (e, details) { /* details: date: {Date} - Selected date(s) (see getDate()) viewDate: {Date} - Focused date viewMode: {Number} - ID of the current view datepicker: {Datepicker} - Datepicker instance */ }); instance.addEventListener('changeMonth', function (e, details) { /* details: date: {Date} - Selected date(s) (see getDate()) viewDate: {Date} - Focused date viewMode: {Number} - ID of the current view datepicker: {Datepicker} - Datepicker instance */ }); instance.addEventListener('changeView', function (e, details) { /* details: date: {Date} - Selected date(s) (see getDate()) viewDate: {Date} - Focused date viewMode: {Number} - ID of the current view datepicker: {Datepicker} - Datepicker instance */ }); instance.addEventListener('changeYear', function (e, details) { /* details: date: {Date} - Selected date(s) (see getDate()) viewDate: {Date} - Focused date viewMode: {Number} - ID of the current view datepicker: {Datepicker} - Datepicker instance */ }); instance.addEventListener('hide', function (e, details) { /* details: date: {Date} - Selected date(s) (see getDate()) viewDate: {Date} - Focused date viewMode: {Number} - ID of the current view datepicker: {Datepicker} - Datepicker instance */ }); instance.addEventListener('show', function (e, details) { /* details: date: {Date} - Selected date(s) (see getDate()) viewDate: {Date} - Focused date viewMode: {Number} - ID of the current view datepicker: {Datepicker} - Datepicker instance */ });
Vanilla JavaScript Date & Date Range Picker, Vanilla JS Datepicker Plugin/Github
See Demo And Download
Official Website(mymth): Click Here
This superior jQuery/javascript plugin is developed by mymth. For extra Advanced Usages, please go to the official website.
Be First to Comment