var $input = $('.datepicker').pickadate()
// Use the picker object directly.
var picker = $input.pickadate('picker')
picker.methodName(argument1, argument2, ...)
picker.objectName
// Or pass through the element’s plugin data.
$input.pickadate(methodName, argument1, argument2, ...)
$input.pickadate(objectName)
For most examples on this page, the date picker is used, but the same API applies to the time picker as well.
Open and close the picker holder. To check if it’s already open, use the get
method.
picker.open()
picker.close()
// If a “click” is involved, prevent the event bubbling.
event.stopPropagation()
Close the picker while keeping focus on the input
element by passing a truth-y first argument.
picker.close(true)
Open the picker without focusing onto the input
element by passing false
as the first argument. Opening the picker this way, there’s a couple of things to note:
(1) The only way to close it is with a separate custom binding – in this example, on document click.
(2) The “opening” events are still triggered – however, using the get
method to see if the picker is open will return false
.
If any of the picker elements is focused/clicked, it resumes normal behavior.
picker.open(false)
$(document).on('click', function() {
picker.close()
})
Clear the value in the picker’s input
element.
picker.clear()
This is a shorthand that uses the set
method behind the scenes.
Get the properties, objects, and states that make up the current state of the picker.
picker.get(thing)
The thing
argument is an optional string and can be one of the following:
The thing
s denoted in the list above with an asterisk (*) return a picker item object that can be formatted by passing a second string argument using the date or time formatting rules:
picker.get(thing, format)
Each “date” or “time” within the picker has an item object accompanying it behind the scenes.
Here’s a date picker item object for 22 June, 2013:
{
// The full year.
year: 2013,
// The month with zero-as-index.
month: 3,
// The date of the month.
date: 20,
// The day of the week with zero-as-index.
day: 6,
// The underlying JavaScript Date object.
obj: { 'Sat Apr 20 2013 00:00:00 GMT-0400 (EDT)' },
// The “pick” value used for comparisons.
pick: 1366430400000
}
Here’s a time picker item object for 5:04 PM:
{
// Hour of the day from 0 to 23.
hour: 17,
// The minutes of the hour from 0 to 59 (based on the interval).
mins: 30,
// The “pick” value used for comparisons.
pick: 1050
}
value
§Returns the string value of the picker’s input
element.
picker.get() // Short for `picker.get('value')`.
select
§Returns the item object that is visually selected.
picker.get('select')
Returns a formatted string for the item object that is visually selected.
picker.get('select', 'yyyy/mm/dd')
highlight
§Returns the item object that is visually highlighted.
picker.get('highlight')
Returns a formatted string for the item object that is visually highlighted.
picker.get('highlight', 'yyyy/mm/dd')
view
§Returns the item object that sets the current view.
picker.get('view')
Returns a formatted string for the item object that sets the current view.
picker.get('view', 'yyyy/mm/dd')
min
§Returns the item object that limits the picker’s lower range.
picker.get('min')
Returns a formatted string for the item object that limits the picker’s lower range.
picker.get('min', 'yyyy/mm/dd')
max
§Returns the item object that limits the picker’s upper range.
picker.get('max')
Returns a formatted string for the item object that limits the picker’s upper range.
picker.get('max', 'yyyy/mm/dd')
disable
§Returns an array of items that determine which item objects to disable on the picker.
picker.get('disable')
Set the properties, objects, and states to change the state of the picker.
picker.set(thing, value)
An alternate syntax can be used to set multiple things at once:
picker.set({
thing: value,
thing: value,
thing: value
})
Both thing
and value
are required arguments. The value
, is based on type of thing
being set. The thing
, is a string that can be:
When the thing
s denoted in the list above with an asterisk (*) are set, they cascade into updating other things using the same value.
clear
§Clear the value in the picker’s input
element.
picker.set('clear')
This is the full form of the clear
method.
select
§Setting select
has cascading changes that update the highlight
, the view
, and the value of the input
element based on the settings format
.
// Using arrays formatted as [YEAR,MONTH,DATE].
picker.set('select', [2013,3,20])
// Using JavaScript Date objects.
picker.set('select', { 'Tue Apr 30 2013 00:00:00 GMT-0400 (EDT)' })
// Using positive integers as UNIX timestamps.
picker.set('select', 1365961912346)
// Using arrays formatted as [HOUR,MINUTE].
picker.set('select', [3,0])
// Using positive integers as minutes.
picker.set('select', 540)
highlight
§Setting highlight
has a cascading change that updates the item object that sets the view
of the picker.
// Using arrays formatted as [YEAR,MONTH,DATE].
picker.set('highlight', [2013,3,20])
// Using JavaScript Date objects.
picker.set('highlight', { 'Tue Apr 30 2013 00:00:00 GMT-0400 (EDT)' })
// Using positive integers as UNIX timestamps.
picker.set('highlight', 1365961912346)
// Using arrays formatted as [HOUR,MINUTE].
picker.set('highlight', [15,30])
// Using positive integers as minutes.
picker.set('highlight', 1080)
view
§Setting view
has no cascading changes and the highlight
remains unaffected.
The value
passed gets normalized to the first date of the month to bring into view.
// Using arrays formatted as [YEAR,MONTH,DATE].
picker.set('view', [2000,3,20])
// Using JavaScript Date objects.
picker.set('view', { 'Sun Aug 14 1988 00:00:00 GMT-0400 (EDT)' })
// Using positive integers as UNIX timestamps.
picker.set('view', 1587355200000)
// Using arrays formatted as [HOUR,MINUTE].
picker.set('view', [15,30])
// Using positive integers as minutes.
picker.set('view', 1080)
min
§Setting min
has cascading changes on the select
, highlight
, and view
only when the particular item object goes out of range.
// Using arrays formatted as [YEAR,MONTH,DATE].
picker.set('min', [2013,3,20])
// Using JavaScript Date objects.
picker.set('min', { 'Wed Aug 14 2013 00:00:00 GMT-0400 (EDT)' })
// Using integers as days relative to today.
picker.set('min', -4)
// Using `true` for “today”.
picker.set('min', true)
// Using `false` to remove.
picker.set('min', false)
// Using arrays formatted as [HOUR,MINUTE].
picker.set('min', [15,30])
// Using integers as intervals relative from now.
picker.set('min', -4)
// Using `true` for “now”.
picker.set('min', true)
// Using `false` to remove.
picker.set('min', false)
max
§Setting max
has cascading changes on the select
, highlight
, and view
only when the particular item object goes out of range.
// Using arrays formatted as [YEAR,MONTH,DATE].
picker.set('max', [2013,3,20])
// Using JavaScript Date objects.
picker.set('max', { 'Wed Aug 14 2013 00:00:00 GMT-0400 (EDT)' })
// Using integers as days relative to today.
picker.set('max', 4)
// Using `true` for “today”.
picker.set('max', true)
// Using `false` to remove.
picker.set('max', false)
// Using arrays formatted as [HOUR,MINUTE].
picker.set('max', [15,30])
// Using integers as intervals relative from now.
picker.set('max', 4)
// Using `true` for “now”.
picker.set('max', true)
// Using `false` to remove.
picker.set('max', false)
on
§Bind callbacks to get fired off when the relative picker method is called:
picker.on(methodName, function() { … })
An alternate syntax can be used to bind multiple callbacks at once:
picker.on({
methodName: function() { … },
methodName: function() { … },
methodName: function() { … }
})
The methodName
can be open
, close
, render
, start
, stop
, or set
.
picker.on('open', function() {
console.log( 'Opened.. and here I am!' )
})
The on
method can only be used after the picker has been initiated. To set default events, pass them as options when invoking the picker:
$('.datepicker').pickadate({
onOpen: function() {
console.log('Opened up!')
},
onClose: function() {
console.log('Closed now')
},
onRender: function() {
console.log('Just rendered anew')
},
onStart: function() {
console.log('Hello there :)')
},
onStop: function() {
console.log('See ya')
},
onSet: function(event) {
console.log('Set stuff:', event)
}
})
Within scope of the events’ callbacks, this
refers to the picker object – and for most events, no arguments are passed.
The only exception is the set
method, which is passed an argument that provides more context as to what is being “set”.
trigger
§Trigger callbacks that have been queued up using the the on
method:
picker.on('open', function() {
console.log('Didn’t open.. yet here I am!')
})
picker.trigger('open')
$root
§This is the picker’s relative root holder element wrapped as a jQuery object.
picker.$root
component
§This is the picker’s relative component constructor that builds the date or time picker. This API is in flux – so avoid using it for now.