Zebra_Datepicker是一个轻量级的、跨浏览器的、高度可定制的jQuery Datepicker插件。Zebra_Datapicker的工作原理是包装一个输入元素,并在包装中添加一个日历按钮,点击后打开一个日期选择器。
1.在网页上包含jQuery库和Zebra_Datepicker插件
<script src="/path/to/jquery.min.js"></script> <script src="/path/to/zebra_datepicker.js"></script>
2.为日期选择器创建一个普通输入字段。
<input id="datepicker-example1" type="text">
3.在网页的标题中包含jQuery Zebra Datepicker插件的样式表。
<!-- Bootstrap theme --> <link rel="stylesheet" href="/path/to/bootstrap/zebra_datepicker.css"> <!-- Default theme --> <link rel="stylesheet" href="/path/to/default/zebra_datepicker.css"> <!-- Metallic theme --> <link rel="stylesheet" href="/path/to/metallic/zebra_datepicker.css">
4.将默认日期选择器附加到输入字段。
$('#datepicker-example1').Zebra_DatePicker();
5.所有默认插件选项。
// setting this property to a jQuery element, will result in the date picker being always visible, the indicated // element being the date picker's container; // // setting this to boolean TRUE will keep will result in the date picker not closing when selecting a // date but only when the user clicks outside the date picker. // // note that when a date format is used that also involves time, this property will be automatically // set to TRUE! // // default is FALSE always_visible: false, // by default, the date picker is injected into the <body>; use this property to tell the library to inject // the date picker into a custom element - useful when you want the date picker to open at a specific position // // must be a jQuery element // // default is $('body') container: $('body'), // dates that should have custom classes applied to them // an object in the form of // { // 'myclass1': [dates_to_apply_the_custom_class_to], // 'myclass2': [dates_to_apply_the_custom_class_to] // } // where "dates_to_apply_the_custom_class_to" is an array of dates in the same format as required for // "disabled_dates" property. // // custom classes will be applied *only* in the day picker view and not on month/year views! // also note that the class name will have the "_disabled" suffix added if the day the class is applied to // is disabled // // in order for the styles in your custom classes to be applied, make sure you are using the following syntax: // // .Zebra_DatePicker .dp_daypicker td.myclass1 { .. } // .Zebra_DatePicker .dp_daypicker td.myclass1_disabled { .. } // // default is FALSE, no custom classes custom_classes: false, // days of the week; Sunday to Saturday days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], // by default, the abbreviated name of a day consists of the first 2 letters from the day's full name; // while this is common for most languages, there are also exceptions for languages like Thai, Loa, Myanmar, // etc. where this is not correct; for these cases, specify an array with the abbreviations to be used for // the 7 days of the week; leave it FALSE to use the first 2 letters of a day's name as the abbreviation. // // default is FALSE days_abbr: false, // the position of the date picker relative to the element it is attached to. note that, regardless of this // setting, the date picker's position will be automatically adjusted to fit in the viewport, if needed. // // possible values are "above" and "below" // // default is "above" default_position: 'above', // direction of the calendar // // a positive or negative integer: n (a positive integer) creates a future-only calendar beginning at n days // after today; -n (a negative integer); if n is 0, the calendar has no restrictions. use boolean true for // a future-only calendar starting with today and use boolean false for a past-only calendar ending today. // // you may also set this property to an array with two elements in the following combinations: // // - first item is boolean TRUE (calendar starts today), an integer > 0 (calendar starts n days after // today), or a valid date given in the format defined by the "format" attribute, using English for // month names (calendar starts at the specified date), and the second item is boolean FALSE (the calendar // has no ending date), an integer > 0 (calendar ends n days after the starting date), or a valid date // given in the format defined by the "format" attribute, using English for month names, and which occurs // after the starting date (calendar ends at the specified date) // // - first item is boolean FALSE (calendar ends today), an integer < 0 (calendar ends n days before today), // or a valid date given in the format defined by the "format" attribute, using English for month names // (calendar ends at the specified date), and the second item is an integer > 0 (calendar ends n days // before the ending date), or a valid date given in the format defined by the "format" attribute, using // English for month names and which occurs before the starting date (calendar starts at the specified // date) // // [1, 7] - calendar starts tomorrow and ends seven days after that // [true, 7] - calendar starts today and ends seven days after that // ['2013-01-01', false] - calendar starts on January 1st 2013 and has no ending date ("format" is YYYY-MM-DD) // [false, '2012-01-01'] - calendar ends today and starts on January 1st 2012 ("format" is YYYY-MM-DD) // // note that "disabled_dates" property will still apply! // // default is 0 (no restrictions) direction: 0, // an array of disabled dates in the following format: 'day month year weekday' where "weekday" is optional // and can be 0-6 (Saturday to Sunday); the syntax is similar to cron's syntax: the values are separated by // spaces and may contain * (asterisk) - (dash) and , (comma) delimiters: // // ['1 1 2012'] would disable January 1, 2012; // ['* 1 2012'] would disable all days in January 2012; // ['1-10 1 2012'] would disable January 1 through 10 in 2012; // ['1,10 1 2012'] would disable January 1 and 10 in 2012; // ['1-10,20,22,24 1-3 *'] would disable 1 through 10, plus the 22nd and 24th of January through March for every year; // ['* * * 0,6'] would disable all Saturdays and Sundays; // ['01 07 2012', '02 07 2012', '* 08 2012'] would disable 1st and 2nd of July 2012, and all of August of 2012 // // default is FALSE, no disabled dates // // DISABLING ALL DATES AND NOT SPECIFYING AT LEAST ONE ENABLED DATE WILL SEND THE SCRIPT INTO AN INFINITE // LOOP SEARCHING FOR AN ENABLED DATE TO DISPLAY! disabled_dates: false, // an array of enabled dates in the same format as required for "disabled_dates" property. // to be used together with the "disabled_dates" property by first setting the "disabled_dates" property to // something like "[* * * *]" (which will disable everything) and the setting the "enabled_dates" property to, // say, "[* * * 0,6]" to enable just weekends. enabled_dates: false, // an array of selectable am/pm. // allowed values are ['am'], ['pm'], or ['am', 'pm'] // default is FALSE, both are always selectable. // note that this only applies when the date format includes am/pm (a or A) // even when only one is enabled, onChange() will still be triggered when clicking the up/down buttons next to AM/PM on the timepicker enabled_ampm: false, // an array of selectable hours. // default is FALSE, all hours are selectable. enabled_hours: false, // an array of selectable minutes. // default is FALSE, all minutes are selectable. enabled_minutes: false, // an array of selectable seconds. // default is FALSE, all seconds are selectable. enabled_seconds: false, // week's starting day // // valid values are 0 to 6, Sunday to Saturday // // default is 1, Monday first_day_of_week: 1, // format of the returned date // // accepts the following characters for date formatting: d, D, j, l, N, w, S, F, m, M, n, Y, y, h, H, // g, G, i, s, a, A borrowing the syntax from PHP's "date" function. // // note that when setting a date format without days ('d', 'j'), the users will be able to select only years // and months, and when setting a format without months and days ('F', 'm', 'M', 'n', 'd', 'j'), the // users will be able to select only years; likewise, when setting a date format with just months ('F', 'm', // 'M', 'n') or just years ('Y', 'y'), users will be able to select only months and years, respectively. // // setting a format that also involves time (h, H, g, G, i, s, a, A) will automatically enable the time // picker. // // also note that the value of the "view" property (see below) may be overridden if it is the case: a value of // "days" for the "view" property makes no sense if the date format doesn't allow the selection of days. // // default is Y-m-d format: 'Y-m-d', // captions in the datepicker's header, for the 3 possible views: days, months, years // // for each of the 3 views the following special characters may be used borrowing from PHP's "date" function's // syntax: m, n, F, M, y and Y; any of these will be replaced at runtime with the appropriate date fragment, // depending on the currently viewed date. two more special characters are also available Y1 and Y2 (upper // case representing years with 4 digits, lowercase representing years with 2 digits) which represent // "currently selected year - 7" and "currently selected year + 4" and which only make sense used in the // "years" view. // // even though any of these special characters may be used in any of the 3 views, you should use m, n, F, M // for the "days" view and y, Y, Y1, Y2, y1, y2 for the "months" and "years" view or you may get unexpected // results! // // Text and HTML can also be used, and will be rendered as it is, as in the example below (the library is // smart enough to not replace special characters when used in words or HTML tags): // // header_captions: { // 'days': 'Departure:<br>F, Y', // 'months': 'Departure:<br>Y', // 'years': 'Departure:<br>Y1 - Y2' // } // // Default is // // header_captions: { // 'days': 'F, Y', // 'months': 'Y', // 'years': 'Y1 - Y2' // } header_captions: { days: 'F, Y', months: 'Y', years: 'Y1 - Y2' }, // the left and right white-space around the icon // if the "inside" property is set to TRUE then the target element's padding will be altered so that // the element's left or right padding (depending on the value of "icon_position") will be 2 x icon_margin // plus the icon's width // if the "inside" property is set to FALSE, then this will be the distance between the element and the icon. // leave it to FALSE to use the element's existing padding // // default is FALSE icon_margin: false, // icon's position // accepted values are "left" and "right" // if the "inside" property is set to TRUE, this will always be "right" // // default is "right" icon_position: 'right', // should the icon for opening the datepicker be inside the element? // if set to FALSE, the icon will be placed to the right of the parent element, while if set to TRUE it will // be placed to the right of the parent element, but *inside* the element itself // // default is TRUE inside: true, // the caption for the "Clear" button lang_clear_date: 'Clear date', // months names months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], // by default, the abbreviated name of a month consists of the first 3 letters from the month's full name; // while this is common for most languages, there are also exceptions for languages like Thai, Loa, Myanmar, // etc. where this is not correct; for these cases, specify an array with the abbreviations to be used for // the months of the year; leave it FALSE to use the first 3 letters of a month's name as the abbreviation. // // default is FALSE months_abbr: false, // HTML to be used for previous/next and up/down buttons, in that order // // default is ['◀', '▶', '▲', '▼'] navigation: ['◀', '▶', '▲', '▼'], // the offset, in pixels (x, y), to shift the date picker's position relative to the top-right of the icon // that toggles the date picker or, if the icon is disabled, relative to the top-right corner of the element // the plugin is attached to. // // note that this only applies if the position of element relative to the browser's viewport doesn't require // the date picker to be placed automatically so that it is visible! // // default is [5, -5] offset: [5, -5], // set whether the date picker should be shown *only* when interacting with the icon // note that if you also set the "show_icon" property to FALSE, you will not be able to show the date picker anymore! // // default is FALSE open_icon_only: false, // set this property to TRUE if you want the date picker to be shown when the parent element (if // "open_icon_only" is not set to FALSE) or the associated calendar icon (if "show_icon" is set to TRUE) // receive focus. // // default is FALSE open_on_focus: false, // if set as a jQuery element with a Zebra_DatePicker attached, that particular date picker will use the // current date picker's value as starting date // note that the rules set in the "direction" property will still apply, only that the reference date will // not be the current system date but the value selected in the current date picker // default is FALSE (not paired with another date picker) pair: false, // should the element the calendar is attached to, be read-only? // if set to TRUE, a date can be set only through the date picker and cannot be entered manually // // default is TRUE readonly_element: true, // should days from previous and/or next month be selectable when visible? // note that if the value of this property is set to TRUE, the value of "show_other_months" will be considered // TRUE regardless of the actual value! // // default is FALSE select_other_months: false, // should the "Clear date" button be visible? // // accepted values are: // // - 0 (zero) - the button for clearing a previously selected date is shown only if a previously selected date // already exists; this means that if the input the date picker is attached to is empty, and the user selects // a date for the first time, this button will not be visible; once the user picked a date and opens the date // picker again, this time the button will be visible. // // - TRUE will make the button visible all the time // // - FALSE will disable the button // // default is "0" (without quotes) show_clear_date: 0, // Should a calendar icon be added to the elements the plugin is attached to? // // Set this property's value to boolean false if you don't want the calendar icon. // // Note that the text is not visible by default since text-indentation is set to a big negative value in the CSS, so you might want to change that in case you want to make the text visible. // // When not set to boolean false the plugin will attach a calendar icon to the elements the plugin is attached to. show_icon: 'Pick A Date', // should days from previous and/or next month be visible? // // default is TRUE show_other_months: true, // should the "Today" button be visible? // setting it to anything but boolean FALSE will enable the button and will use the property's value as // caption for the button; setting it to FALSE will disable the button // // default is "Today" show_select_today: 'Today', // should an extra column be shown, showing the number of each week? // anything other than FALSE will enable this feature, and use the given value as column title // i.e. show_week_number: 'Wk' would enable this feature and have "Wk" as the column's title // // default is FALSE show_week_number: false, // a default date to start the date picker with // must be specified in the format defined by the "format" property, or it will be ignored! // note that this value is used only if there is no value in the field the date picker is attached to! // // default is FALSE start_date: false, // should default values, in the input field the date picker is attached to, be deleted if they are not valid // according to "direction" and/or "disabled_dates"? // // default is FALSE strict: false, // how should the date picker start; valid values are "days", "months" and "years" // note that the date picker is always cycling days-months-years when clicking in the date picker's header, // and years-months-days when selecting dates (unless one or more of the views are missing due to the date's // format) // // also note that the value of the "view" property may be overridden if the date's format requires so! (i.e. // "days" for the "view" property makes no sense if the date format doesn't allow the selection of days) // // default is "days" view: 'days', // days of the week that are considered "weekend days" // valid values are 0 to 6, Sunday to Saturday // // default values are 0 and 6 (Saturday and Sunday) weekend_days: [0, 6], // when set to TRUE, day numbers < 10 will be prefixed with 0; set to FALSE if you don't want that // // default is TRUE zero_pad: false, // callback function to be executed whenever the user changes the view (days/months/years), as well as when // the user navigates by clicking on the "next"/"previous" icons in any of the views // // the callback function called by this event takes 2 arguments - the first argument represents the current // view (can be "days", "months" or "years"), the second argument represents an array containing the "active" // elements (not disabled) from the view, as jQuery elements, allowing for easy customization and interaction // with particular cells in the date picker's view // // the "this" keyword inside the callback function refers to the element the date picker is attached to, // as a jQuery object // // for simplifying searching for particular dates, each element in the second argument will also have a // "date" data attribute whose format depends on the value of the "view" argument: // - YYYY-MM-DD for elements in the "days" view // - YYYY-MM for elements in the "months" view // - YYYY for elements in the "years" view // // the "this" keyword inside the callback function refers to the element the date picker is attached to! onChange: null, // callback function to be executed when the user clicks the "Clear" button // // the callback function takes no arguments; the "this" keyword inside the callback function refers to // the element the date picker is attached to, as a jQuery object onClear: null, // callback function to be executed when the date picker is shown // // the callback function takes no arguments; the "this" keyword inside the callback function refers to // the element the date picker is attached to, as a jQuery object onOpen: null, // callback function to be executed when the date picker is closed, but only when the "always_visible" // property is set to FALSE // // the callback function takes no arguments; the "this" keyword inside the callback function refers to // the element the date picker is attached to, as a jQuery object onClose: null, // callback function to be executed when a date is selected // the callback function takes 3 arguments: // - the date in the format specified by the "format" attribute; // - the date in YYYY-MM-DD format // - the date as a JavaScript Date object // // the "this" keyword inside the callback function refers to the element the date picker is attached to, // as a jQuery object onSelect: null
6.API方法。
var datepicker = $('element').data('Zebra_DatePicker'); // Updates configuration options at run-time, and recalculates date pickerâs icon position relative to the parent element. // You should call this method whenever you show/hide/reposition the parent element, or alter the parent elementâs dimensions; datepicker.update(); // destroy the date picker datepicker.destroy(); // show the date picker datepicker.show(); // hide the date picker datepicker.hide(); // clear the selected date datepicker.clear_date(); // set the value of the element the date picker is attached to, to the specified date datepicker.set_date(date)
2023-01-11
v1.9.19 (2022-09-14)
v1.9.18 (2021-12-31)
v1.9.17 (2020-12-24)
2016年9月1日(2020年10月14日)
2015年9月15日(2020-07-20)
v1.9.14 (2020-04-27)
v1.9.13(2019年9月27日)
v1.913贝塔(2019-05-31)
v1.9.12(2018年10月28日)
v1.9.11 (2018-09-04)
v1.9.10(2018年8月10日)
v1.9.9 (2018-07-08)
2018-07-06
2018-06-28
v1.9.8(2018年4月09日)
v1.9.7 (2017-12-13)
v1.9.6 (2017-11-27)
v1.9.5 (2017-06-14)
v1.9.4(2016年1月25日)
v1.9.3(2016年1月11日)
v1.9.2 (2015-05-01)
v1.9.1(2015年4月15日)
2015-04-11
2015-03-25
v1.8.9 (2014-11-14)
v1.8.9 (2013-11-29)
v1.8.7 (2013-11-29)
v1.8.5 (2013-09-22)
v1.8.4 (2013-08-12)
Â