Timepicker Plugin for jQuery ======================== [timepicker screenshot](http://jonthornton.github.com/jquery-timepicker) [See a demo and examples here](http://jonthornton.github.com/jquery-timepicker) jquery.timepicker is a lightweight timepicker plugin for jQuery inspired by Google Calendar. It supports both mouse and keyboard navigation, and weighs in at 2.7kb minified and gzipped. Requirements ------------ * [jQuery](http://jquery.com/) (>= 1.7) Usage ----- ```javascript $('.some-time-inputs').timepicker(options); ``` Include `jquery.timepicker.css` and `jquery.timepicker.min.js` in your page. ```options``` is an optional javascript object with parameters explained below. You can also set options as [data attributes](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes) on the intput elements, like ``````. Timepicker still needs to be initialized by calling ```$('#someElement').timepicker(options);```. Data attributes will override any conflicting initialization options. The defaults for all options are exposed through the ```$.fn.timepicker.defaults``` object. Properties changed in this object (same properties configurable through the constructor) will take effect for every instance created after the change. Options ------- - **appendTo** Override where the dropdown is appended. Takes either a `string` to use as a selector, a `function` that gets passed the clicked input element as argument or a jquery `object` to use directly. *default: "body"* - **className** A class name to apply to the HTML element that contains the timepicker dropdown. *default: null* - **closeOnWindowScroll** Close the timepicker when the window is scrolled. (Replicates ```` control. This is ideal for small screen devices, or if you want to prevent the user from entering arbitrary values. This option is not compatible with the following options: ```appendTo```, ```closeOnWindowScroll```, ```disableTouchKeyboard```, ```forceRoundTime```, ```scrollDefault```, ```selectOnBlur```, ```typeAheadHighlight```. *default: false* - **wrapHours** If a time greater than 24 hours (27:30, for example) is entered, apply modolo 24 to create a valid time. Setting this to `false` will cause an input of 27:30 to result in a `timeFormatError` event. *default: true* Methods ------- - **getSecondsFromMidnight** Get the time as an integer, expressed as seconds from 12am. ```javascript $('#getTimeExample').timepicker('getSecondsFromMidnight'); ``` - **getTime** Get the time using a Javascript Date object, relative to a Date object (default: today's date). ```javascript $('#getTimeExample').timepicker('getTime'); $('#getTimeExample').timepicker('getTime', new Date()); ``` You can get the time as a string using jQuery's built-in ```val()``` function: ```javascript $('#getTimeExample').val(); ``` - **hide** Close the timepicker dropdown. ```javascript $('#hideExample').timepicker('hide'); ``` - **isVisible** Check if the timepicker attached to *a specific input* is visible. Not compatible with the `useSelect` option. ```javascript $('#hideExample').timepicker('isVisible'); ``` - **option** Change the settings of an existing timepicker. Calling ```option``` on a visible timepicker will cause the picker to be hidden. ```javascript $('#optionExample').timepicker({ 'timeFormat': 'g:ia' }); // initialize the timepicker sometime earlier in your code ... $('#optionExample').timepicker('option', 'minTime', '2:00am'); $('#optionExample').timepicker('option', { 'minTime': '4:00am', 'timeFormat': 'H:i' }); ``` - **remove** Unbind an existing timepicker element. ```javascript $('#removeExample').timepicker('remove'); ``` - **setTime** Set the time using a Javascript Date object. ```javascript $('#setTimeExample').timepicker('setTime', new Date()); ``` - **show** Display the timepicker dropdown. ```javascript $('#showExample').timepicker('show'); ``` Events ------ - **change** The native ```onChange``` event will fire any time the input value is updated, whether by selection from the timepicker list or manual entry into the text input. Your code should bind to ```change``` after initializing timepicker, or use [event delegation](http://api.jquery.com/on/). - **changeTime** Called after a valid time value is entered or selected. See ```timeFormatError``` and ```timeRangeError``` for error events. Fires before ```change``` event. - **hideTimepicker** Called after the timepicker is closed. - **selectTime** Called after a time value is selected from the timepicker list. Fires before ```change``` event. - **showTimepicker** Called after the timepicker is shown. - **timeFormatError** Called if an unparseable time string is manually entered into the timepicker input. Fires before ```change``` event. - **timeRangeError** Called if maxTime and minTime, or disableTimeRanges is set and an invalid time is manually entered into the timepicker input. Fires before ```change``` event. The `selectTime` and `hideTimepicker` events fire slightly differently when using the `useSelect` option. See https://github.com/jonthornton/jquery-timepicker/issues/427 for more information. Theming ------- Sample markup with class names: ```html ...
``` The `ui-timepicker-positioned-top` class will be applied only when the dropdown is positioned above the input. ## Packaging NPM [npm install --save timepicker](https://www.npmjs.com/package/timepicker) CDN [https://cdn.jsdelivr.net/npm/timepicker/](https://cdn.jsdelivr.net/npm/timepicker/) [![jsDelivr Hits](https://data.jsdelivr.com/v1/package/npm/timepicker/badge)](https://www.jsdelivr.com/package/npm/timepicker) An AngularJS directive is available at https://github.com/Recras/angular-jquery-timepicker Help ---- Submit a [GitHub Issues request](https://github.com/jonthornton/jquery-timepicker/issues/new). Please try provide code that demonstrates the problem; you can use [this jsFiddle](http://jsfiddle.net/jonthornton/28uvg/) as a starting point. Development guidelines ---------------------- 1. Install dependencies (jquery + grunt) `npm install` 2. For sanity checks and minification run `grunt`, or just `grunt lint` to have the code linted jquery-timepicker follows [semantic versioning](http://semver.org/). - - - This software is made available under the open source MIT License. © 2014 [Jon Thornton](http://www.jonthornton.com) and [contributors](https://github.com/jonthornton/jquery-timepicker/graphs/contributors)