I use <input type="date">
fields that gracefully fallback to jQuery when the browser does not have support for the field. Relatively recently, Chrome started offering a native date picker, which is great. But I have found that many users miss the little arrow that brings up the calendar and therefore miss the fact that there is an easy calendar for date selection.
To make this more intuitive, it would be great if I could bring up the native datepicker UI when the user moves the focus to the input or clicks another element (like a small calendar icon).
Is there a method that I can use in Chrome to trigger the datepicker UI?
To use DatePicker you need to install react-native-datepicker package. This command will copy all the dependencies into your node_module directory. –save is optional, It updates the react-native-datepicker dependency in your package. json file.
The JavaScript DateTime Picker is a lightweight and mobile-friendly control that allows end users to enter or select date and time values from a pop-up calendar and drop-down time list. It provides month, year, and decade views for quick navigation to the desired date.
The <input type="date"> defines a date picker. The resulting value includes the year, month, and day.
Here is a way to trigger the datepicker when users click on the field itself, because computer illiterate users don't know where they should click:
input[type="date"] { position: relative; } /* create a new arrow, because we are going to mess up the native one see "List of symbols" below if you want another, you could also try to add a font-awesome icon.. */ input[type="date"]:after { content: "\25BC"; color: #555; padding: 0 5px; } /* change color of symbol on hover */ input[type="date"]:hover:after { color: #bf1400; } /* make the native arrow invisible and stretch it over the whole field so you can click anywhere in the input field to trigger the native datepicker*/ input[type="date"]::-webkit-calendar-picker-indicator { position: absolute; top: 0; left: 0; right: 0; bottom: 0; width: auto; height: auto; color: transparent; background: transparent; } /* adjust increase/decrease button */ input[type="date"]::-webkit-inner-spin-button { z-index: 1; } /* adjust clear button */ input[type="date"]::-webkit-clear-button { z-index: 1; }
<input type="date">
Links:
I don't think you can trigger the native calendar control to display, but you could highlight it a bit more:
input[type="date"]:hover::-webkit-calendar-picker-indicator { color: red; } input[type="date"]:hover:after { content: " Date Picker "; color: #555; padding-right: 5px; } input[type="date"]::-webkit-inner-spin-button { /* display: none; <- Crashes Chrome on hover */ -webkit-appearance: none; margin: 0; }
<input type="date" />
You can, as it is, prevent it from displaying, e.g, from the docs:
You can disable the native calendar picker by the following code:
<style> ::-webkit-calendar-picker-indicator { display: none; } </style> <input type=date id=dateInput> <script> dateInput.addEventListener('keydown', function(event) { if (event.keyIdentifier == "Down") { event.preventDefault() } }, false); </script>
Here's the documentation from Webkit, where I got the above:
http://trac.webkit.org/wiki/Styling%20Form%20Controls
Maybe that can be torqued and made to display the date picker, but ask yourself if you'd like every calendar control flying out every time you roamed your mouse across a page?
This answer was also helpful:
https://stackoverflow.com/a/15107073/451969
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With