InputDate Control

The InputDate control allows users to enter and edit dates. The dropdown for InputDate uses the Calendar control, so it is very easy to use. You can also configure the control to not have any date selected, by setting the isRequired property to false.

You can also prevent the control to be modifiable by setting isReadOnly property to true. Or you can also disable the control by setting isDisabled property to true. To indicate that the control is not modifiable you can hide the DropDown button by setting showDropDownButton property to false.

Learn about Input Controls | InputDate Overview Documentation | InputDate API Reference

import 'bootstrap.css'; import '@mescius/wijmo.styles/wijmo.css'; import './styles.css'; // import * as wijmo from '@mescius/wijmo'; import * as input from '@mescius/wijmo.input'; // document.readyState === 'complete' ? init() : window.onload = init; // function init() { // a regular input date let theDate = new input.InputDate('#theDate', { valueChanged: () => showCurrentDate(theDate) }); showCurrentDate(theDate); // document.querySelector("#theDatePCN").addEventListener('click', (e) => { theDate.preserveCalendarNavigation = e.target.checked; }); // // you can clear this one let theDateNotRequired = new input.InputDate('#theDateNotRequired', { isRequired: false, value: null, placeholder: 'Your birth date (optional)' }); let fixedDate = new Date('2011-11-08'); // // readOnly control let theDateReadOnly = new input.InputDate('#theDateReadOnly', { isReadOnly: true, showDropDownButton: false, value: fixedDate, }); // // readOnly control let theDateDisabled = new input.InputDate('#theDateDisabled', { isDisabled: true, showDropDownButton: false, value: fixedDate, }); // // show the currently selected date function showCurrentDate(ctrl) { let el = document.querySelector('#theDateOutput'); el.textContent = wijmo.Globalize.format(ctrl.value, 'D'); } }
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>MESCIUS Wijmo InputDate Overview</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <!-- SystemJS --> <script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.21.5/system.src.js" integrity="sha512-skZbMyvYdNoZfLmiGn5ii6KmklM82rYX2uWctBhzaXPxJgiv4XBwJnFGr5k8s+6tE1pcR1nuTKghozJHyzMcoA==" crossorigin="anonymous"></script> <script src="systemjs.config.js"></script> <script> System.import('./src/app'); </script> </head> <body> <div class="container-fluid"> <p> For example, here is an InputDate with default settings: </p> <div class="form-group"> <label for="theDate">InputDate</label> <input id="theDate"> </div> <div> <input id="theDatePCN" type="checkbox" checked /> <span>Uncheck to always show selected date when dropdown calendar is reopened after navigating to a different month. This sets the <b>preserveCalendarNavigation</b> property to false</span>. By default, it is true. </div> <br> <div> The current date is <b><span id="theDateOutput"></span></b>. </div> <hr /> <p> By default, InputDate values are required, so you can't delete the entire content of the control. If you want to enter dates that are optional, set the <b>isRequired</b> property to false: </p> <div class="form-group"> <label for="theDateNotRequired">Not Required</label> <input id="theDateNotRequired"> </div> <hr /> <p> By default, InputDate control is enabled and modifiable. If you want to prevent the control to be modifiable, set the <b>isReadOnly</b> property to true. Or to make the control disabled entirely, set the <b>isDisabled</b> property to true. In both cases it is recommended to hide the DropDown button by setting <b>showDropDownButton</b> property to false: </p> <div class="form-group"> <label for="theDateReadOnly">ReadOnly</label> <input id="theDateReadOnly"> </div> <div class="form-group"> <label for="theDateDisabled">Disabled</label> <input id="theDateDisabled"> </div> </div> </body> </html>
label { width: 100px; text-align: right; margin-right: 3px; } body { margin-bottom: 36px; }
(function (global) { System.config({ transpiler: 'plugin-babel', babelOptions: { es2015: true }, meta: { '*.css': { loader: 'css' } }, paths: { // paths serve as alias 'npm:': 'node_modules/' }, // map tells the System loader where to look for things map: { 'jszip': 'npm:jszip/dist/jszip.js', '@mescius/wijmo': 'npm:@mescius/wijmo/index.js', '@mescius/wijmo.input': 'npm:@mescius/wijmo.input/index.js', '@mescius/wijmo.styles': 'npm:@mescius/wijmo.styles', '@mescius/wijmo.cultures': 'npm:@mescius/wijmo.cultures', '@mescius/wijmo.chart': 'npm:@mescius/wijmo.chart/index.js', '@mescius/wijmo.chart.analytics': 'npm:@mescius/wijmo.chart.analytics/index.js', '@mescius/wijmo.chart.animation': 'npm:@mescius/wijmo.chart.animation/index.js', '@mescius/wijmo.chart.annotation': 'npm:@mescius/wijmo.chart.annotation/index.js', '@mescius/wijmo.chart.finance': 'npm:@mescius/wijmo.chart.finance/index.js', '@mescius/wijmo.chart.finance.analytics': 'npm:@mescius/wijmo.chart.finance.analytics/index.js', '@mescius/wijmo.chart.hierarchical': 'npm:@mescius/wijmo.chart.hierarchical/index.js', '@mescius/wijmo.chart.interaction': 'npm:@mescius/wijmo.chart.interaction/index.js', '@mescius/wijmo.chart.radar': 'npm:@mescius/wijmo.chart.radar/index.js', '@mescius/wijmo.chart.render': 'npm:@mescius/wijmo.chart.render/index.js', '@mescius/wijmo.chart.webgl': 'npm:@mescius/wijmo.chart.webgl/index.js', '@mescius/wijmo.chart.map': 'npm:@mescius/wijmo.chart.map/index.js', '@mescius/wijmo.gauge': 'npm:@mescius/wijmo.gauge/index.js', '@mescius/wijmo.grid': 'npm:@mescius/wijmo.grid/index.js', '@mescius/wijmo.grid.detail': 'npm:@mescius/wijmo.grid.detail/index.js', '@mescius/wijmo.grid.filter': 'npm:@mescius/wijmo.grid.filter/index.js', '@mescius/wijmo.grid.search': 'npm:@mescius/wijmo.grid.search/index.js', '@mescius/wijmo.grid.style': 'npm:@mescius/wijmo.grid.style/index.js', '@mescius/wijmo.grid.grouppanel': 'npm:@mescius/wijmo.grid.grouppanel/index.js', '@mescius/wijmo.grid.multirow': 'npm:@mescius/wijmo.grid.multirow/index.js', '@mescius/wijmo.grid.transposed': 'npm:@mescius/wijmo.grid.transposed/index.js', '@mescius/wijmo.grid.transposedmultirow': 'npm:@mescius/wijmo.grid.transposedmultirow/index.js', '@mescius/wijmo.grid.pdf': 'npm:@mescius/wijmo.grid.pdf/index.js', '@mescius/wijmo.grid.sheet': 'npm:@mescius/wijmo.grid.sheet/index.js', '@mescius/wijmo.grid.xlsx': 'npm:@mescius/wijmo.grid.xlsx/index.js', '@mescius/wijmo.grid.selector': 'npm:@mescius/wijmo.grid.selector/index.js', '@mescius/wijmo.grid.cellmaker': 'npm:@mescius/wijmo.grid.cellmaker/index.js', '@mescius/wijmo.nav': 'npm:@mescius/wijmo.nav/index.js', '@mescius/wijmo.odata': 'npm:@mescius/wijmo.odata/index.js', '@mescius/wijmo.olap': 'npm:@mescius/wijmo.olap/index.js', '@mescius/wijmo.rest': 'npm:@mescius/wijmo.rest/index.js', '@mescius/wijmo.pdf': 'npm:@mescius/wijmo.pdf/index.js', '@mescius/wijmo.pdf.security': 'npm:@mescius/wijmo.pdf.security/index.js', '@mescius/wijmo.viewer': 'npm:@mescius/wijmo.viewer/index.js', '@mescius/wijmo.xlsx': 'npm:@mescius/wijmo.xlsx/index.js', '@mescius/wijmo.undo': 'npm:@mescius/wijmo.undo/index.js', '@mescius/wijmo.interop.grid': 'npm:@mescius/wijmo.interop.grid/index.js', '@mescius/wijmo.touch': 'npm:@mescius/wijmo.touch/index.js', '@mescius/wijmo.cloud': 'npm:@mescius/wijmo.cloud/index.js', '@mescius/wijmo.barcode': 'npm:@mescius/wijmo.barcode/index.js', '@mescius/wijmo.barcode.common': 'npm:@mescius/wijmo.barcode.common/index.js', '@mescius/wijmo.barcode.composite': 'npm:@mescius/wijmo.barcode.composite/index.js', '@mescius/wijmo.barcode.specialized': 'npm:@mescius/wijmo.barcode.specialized/index.js', 'jszip': 'npm:jszip/dist/jszip.js', 'bootstrap.css': 'npm:bootstrap/dist/css/bootstrap.min.css', 'css': 'npm:systemjs-plugin-css/css.js', 'plugin-babel': 'npm:systemjs-plugin-babel/plugin-babel.js', 'systemjs-babel-build':'npm:systemjs-plugin-babel/systemjs-babel-browser.js' }, // packages tells the System loader how to load when no filename and/or no extension packages: { src: { defaultExtension: 'js' }, "node_modules": { defaultExtension: 'js' }, } }); })(this);