JQuery datepicker 用法详解


Posted in Javascript onDecember 25, 2015

jQuery UI很强大,其中的日期选择插件Datepicker是一个配置灵活的插件,我们可以自定义其展示方式,包括日期格式、语言、限制选择日期范围、添加相关按钮以及其它导航等。

官方地址:http://docs.jquery.com/UI/Datepicker,官方示例: http://jqueryui.com/demos/datepicker/。

一个不错的地址,用来DIY jQuery UI界面效果的站点http://jqueryui.com/themeroller/

DatePicker基本使用方法:

<!DOCTYPE html>
<html>
<head>
 <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
 <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
 <script>
 $(document).ready(function() {
  $("#datepicker").datepicker();
 });
 </script>
</head>
<body style="font-size:62.5%;">
<div type="text" id="datepicker"></div>
</body>
</html>
page up/down - 上一月、下一月
ctrl+page up/down - 上一年、下一年
ctrl+home - 当前月或最后一次打开的日期
ctrl+left/right - 上一天、下一天
ctrl+up/down - 上一周、下一周
enter - 确定选择日期
ctrl+end - 关闭并清除已选择的日期
escape - 关闭并取消选择
$.datepicker.setDefaults( settings ) - 全局设置日期选择插件的参数.
$.datepicker.formatDate( format, date, settings ) - 格式化显示的日期字符串
$.datepicker.iso8601Week( date ) - 给出一个日期,确实他是一年中的第几周
$.datepicker.parseDate( format, value, settings ) - 按照指定格式获取日期字符串 
d - 每月的第几天 (没有前导零)
dd - 每月的第几天 (两位数字)
o - 一年中的第几天 (没有前导零)
oo - 一年中的第几天 (三位数字)
D - day name short
DD - day name long
m - 月份 (没有前导零)
mm - 月份 (两位数字)
M - month name short
MM - month name long
y - 年份 (两位数字)
yy - 年份 (四位数字)
@ - Unix 时间戳 (从 01/01/1970 开始)
'...' - 文本
'' - 单引号
(其它) - 文本
ATOM - 'yy-mm-dd' (Same as RFC 3339/ISO 8601)
COOKIE - 'D, dd M yy'
ISO_8601 - 'yy-mm-dd'
RFC_822 - 'D, d M y'
RFC_850 - 'DD, dd-M-y'
RFC_1036 - 'D, d M y
RFC_1123 - 'D, d M yy'
RFC_2822 - 'D, d M yy'
RSS - 'D, d M y'
TIMESTAMP - '@'
W3C - 'yy-mm-dd'
altField : String : ''

  将选择的日期同步到另一个域中,配合altFormat可以显示不同格式的日期字符串。

  初始:$('.selector').datepicker({ altField: '#actualDate' });
  获取:var altField = $('.selector').datepicker('option', 'altField');
  设置:$('.selector').datepicker('option', 'altField', '#actualDate'); 

altFormat : String : ''

当设置了altField的情况下,显示在另一个域中的日期格式。
  初始:$('.selector').datepicker({ altFormat: 'yy-mm-dd' });
  获取:var altFormat = $('.selector').datepicker('option', 'altFormat');
  设置:$('.selector').datepicker('option', 'altFormat', 'yy-mm-dd'); 

appendText : String : ''

  在日期插件的所属域后面添加指定的字符串。
  初始:$('.selector').datepicker({ appendText: '(yyyy-mm-dd)' });
  获取:var appendText = $('.selector').datepicker('option', 'appendText');
  设置:$('.selector').datepicker('option', 'appendText', '(yyyy-mm-dd)'); 

buttonImage : String : ''

  设置弹出按钮的图片,如果非空,则按钮的文本将成为alt属性,不直接显示。
  初始:$('.selector').datepicker({ buttonImage: '/images/datepicker.gif' });
  获取:var buttonImage = $('.selector').datepicker('option', 'buttonImage');
  设置:$('.selector').datepicker('option', 'buttonImage', '/images/datepicker.gif'); 

buttonImageOnly : Boolean : false

Set to true to place an image after the field to use as the trigger without it appearing on a button.
  初始:$('.selector').datepicker({ buttonImageOnly: true });
  获取:var buttonImageOnly = $('.selector').datepicker('option', 'buttonImageOnly');
  设置:$('.selector').datepicker('option', 'buttonImageOnly', true); 

buttonText : String : '...'

  设置触发按钮的文本内容。
  初始:$('.selector').datepicker({ buttonText: 'Choose' });
  获取:var buttonText = $('.selector').datepicker('option', 'buttonText');
  设置:$('.selector').datepicker('option', 'buttonText', 'Choose'); 

changeMonth : Boolean : false

  设置允许通过下拉框列表选取月份。
  初始:$('.selector').datepicker({ changeMonth: true });
  获取:var changeMonth = $('.selector').datepicker('option', 'changeMonth');
  设置:$('.selector').datepicker('option', 'changeMonth', true); 

changeYear : Boolean : false

  设置允许通过下拉框列表选取年份。
  初始:$('.selector').datepicker({ changeYear: true });
  获取:var changeYear = $('.selector').datepicker('option', 'changeYear');
  设置:$('.selector').datepicker('option', 'changeYear', true); 

closeTextType: StringDefault: 'Done'

  设置关闭按钮的文本内容,此按钮需要通过showButtonPanel参数的设置才显示。
  初始:$('.selector').datepicker({ closeText: 'X' });
  获取:var closeText = $('.selector').datepicker('option', 'closeText');
  设置:$('.selector').datepicker('option', 'closeText', 'X'); 

constrainInput : Boolean : true

  如果设置为true,则约束当前输入的日期格式。
  初始:$('.selector').datepicker({ constrainInput: false });
  获取:var constrainInput = $('.selector').datepicker('option', 'constrainInput');
  设置:$('.selector').datepicker('option', 'constrainInput', false); 

currentText : String : 'Today'

  设置当天按钮的文本内容,此按钮需要通过showButtonPanel参数的设置才显示。
  初始:$('.selector').datepicker({ currentText: 'Now' });
  获取:var currentText = $('.selector').datepicker('option', 'currentText');
  设置:$('.selector').datepicker('option', 'currentText', 'Now'); 

dateFormat : String : 'mm/dd/yy'

  设置日期字符串的显示格式。
  初始:$('.selector').datepicker({ dateFormat: 'yy-mm-dd' });
  获取:var dateFormat = $('.selector').datepicker('option', 'dateFormat');
  设置:$('.selector').datepicker('option', 'dateFormat', 'yy-mm-dd'); 

dayNames : Array : ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']

  设置一星期中每天的名称,从星期天开始。此内容用于dateFormat时显示,以及日历中当鼠标移至行头时显示。
  初始:$('.selector').datepicker({ dayNames: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'] });
  获取:var dayNames = $('.selector').datepicker('option', 'dayNames');
  设置:$('.selector').datepicker('option', 'dayNames', ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi']); 

dayNamesMin : Array : ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']

  设置一星期中每天的缩语,从星期天开始,此内容用于dateFormat时显示,以前日历中的行头显示。
  初始:$('.selector').datepicker({ dayNamesMin: ['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa'] });
  获取:var dayNamesMin = $('.selector').datepicker('option', 'dayNamesMin');
  设置:$('.selector').datepicker('option', 'dayNamesMin', ['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa']); 

dayNamesShort : Array : ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']

  设置一星期中每天的缩语,从星期天开始,此内容用于dateFormat时显示,以前日历中的行头显示。
  初始:$('.selector').datepicker({ dayNamesShort: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'] });
  获取:var dayNamesShort = $('.selector').datepicker('option', 'dayNamesShort');
  设置:$('.selector').datepicker('option', 'dayNamesShort', ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam']); 

defaultDate : Date, Number, String : null

  设置默认加载完后第一次显示时选中的日期。可以是Date对象,或者是数字(从今天算起,例如+7),或者有效的字符串('y'代表年, 'm'代表月, 'w'代表周, 'd'代表日, 例如:'+1m +7d')。
  初始:$('.selector').datepicker({ defaultDate: +7 });
  获取:var defaultDate = $('.selector').datepicker('option', 'defaultDate');
  设置:$('.selector').datepicker('option', 'defaultDate', +7); 

duration : String, Number : 'normal'

  设置日期控件展开动画的显示时间,可选是"slow", "normal", "fast",''代表立刻,数字代表毫秒数。
  初始:$('.selector').datepicker({ duration: 'slow' });
  获取:var duration = $('.selector').datepicker('option', 'duration');
  设置:$('.selector').datepicker('option', 'duration', 'slow'); 

firstDay : Number : 0

  设置一周中的第一天。星期天为0,星期一为1,以此类推。
  初始:$('.selector').datepicker({ firstDay: 1 });
  获取:var firstDay = $('.selector').datepicker('option', 'firstDay');
  设置:$('.selector').datepicker('option', 'firstDay', 1); 

gotoCurrent : Boolean : false

  如果设置为true,则点击当天按钮时,将移至当前已选中的日期,而不是今天。
  初始:$('.selector').datepicker({ gotoCurrent: true });
  获取:var gotoCurrent = $('.selector').datepicker('option', 'gotoCurrent');
  设置:$('.selector').datepicker('option', 'gotoCurrent', true); 

hideIfNoPrevNext : Boolean : false

  设置当没有上一个/下一个可选择的情况下,隐藏掉相应的按钮。(默认为不可用)
  初始:$('.selector').datepicker({ hideIfNoPrevNext: true });
  获取:var hideIfNoPrevNext = $('.selector').datepicker('option', 'hideIfNoPrevNext');
  设置:$('.selector').datepicker('option', 'hideIfNoPrevNext', true); 

isRTL : Boolean : false

  如果设置为true,则所有文字是从右自左。
  初始:$('.selector').datepicker({ isRTL: true });
  获取:var isRTL = $('.selector').datepicker('option', 'isRTL');
  设置:$('.selector').datepicker('option', 'isRTL', true); 

maxDate : Date, Number, String : null

  设置一个最大的可选日期。可以是Date对象,或者是数字(从今天算起,例如+7),或者有效的字符串('y'代表年, 'm'代表月, 'w'代表周, 'd'代表日, 例如:'+1m +7d')。
  初始:$('.selector').datepicker({ maxDate: '+1m +1w' });
  获取:var maxDate = $('.selector').datepicker('option', 'maxDate');
  设置:$('.selector').datepicker('option', 'maxDate', '+1m +1w');
       $('.selector').datepicker('option', 'maxDate', '12/25/2012'); 

minDate : Date, Number, String : null

设置一个最小的可选日期。可以是Date对象,或者是数字(从今天算起,例如+7),或者有效的字符串('y'代表年, 'm'代表月, 'w'代表周, 'd'代表日, 例如:'+1m +7d')。
  初始:$('.selector').datepicker({ minDate: new Date(2007, 1 - 1, 1) });
  获取:var minDate = $('.selector').datepicker('option', 'minDate');
  设置:$('.selector').datepicker('option', 'minDate', new Date(2007, 1 - 1, 1));

       $('.selector').datepicker('option', 'minDate', '12/25/2012'); 
monthNames : Array : ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']

  设置所有月份的名称。
  初始:$('.selector').datepicker({monthNames:['Januar','Februar','Marts','April','Maj','Juni','Juli','August','September','Oktober','November','December']});
  获取:var monthNames = $('.selector').datepicker('option', 'monthNames');
  设置:$('.selector').datepicker('option', 'monthNames', ['Januar','Februar','Marts','April','Maj','Juni','Juli','August','September','Oktober','November','December']); 
monthNamesShort : Array : ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']

  设置所有月份的缩写。

  初始:$('.selector').datepicker({monthNamesShort:['Jan','Feb','Mar','Apr','Maj','Jun','Jul','Aug','Sep','Okt','Nov','Dec']});
  获取:var monthNamesShort = $('.selector').datepicker('option', 'monthNamesShort');
  设置:$('.selector').datepicker('option', 'monthNamesShort', ['Jan','Feb','Mar','Apr','Maj','Jun','Jul','Aug','Sep','Okt','Nov','Dec']); 

navigationAsDateFormat : Boolean : false

  如果设置为true,则formatDate函数将应用到 prevText,nextText和currentText的值中显示,例如显示为月份名称。
  初始:$('.selector').datepicker({ navigationAsDateFormat: true });
  获取:var navigationAsDateFormat = $('.selector').datepicker('option', 'navigationAsDateFormat');
  设置:$('.selector').datepicker('option', 'navigationAsDateFormat', true); 

nextText : String : 'Next'

  设置“下个月”链接的显示文字。
  初始:$('.selector').datepicker({ nextText: 'Later' });
  获取:var nextText = $('.selector').datepicker('option', 'nextText');
  设置:$('.selector').datepicker('option', 'nextText', 'Later'); 

numberOfMonths : Number, Array : 1

  设置一次要显示多少个月份。如果为整数则是显示月份的数量,如果是数组,则是显示的行与列的数量。
  初始:$('.selector').datepicker({ numberOfMonths: [2, 3] });
  获取:var numberOfMonths = $('.selector').datepicker('option', 'numberOfMonths');
  设置:$('.selector').datepicker('option', 'numberOfMonths', [2, 3]); 

prevText : String : 'Prev'

设置“上个月”链接的显示文字。
  初始:$('.selector').datepicker({ prevText: 'Earlier' });
  获取:var prevText = $('.selector').datepicker('option', 'prevText');
  设置:$('.selector').datepicker('option', 'prevText', 'Earlier'); 

shortYearCutoff : String, Number : '+10'

  设置截止年份的值。如果是(0-99)的数字则以当前年份开始算起,如果为字符串,则相应的转为数字后再与当前年份相加。当超过截止年份时,则被认为是上个世纪。
  初始:$('.selector').datepicker({ shortYearCutoff: 50 });
  获取:var shortYearCutoff = $('.selector').datepicker('option', 'shortYearCutoff');
  设置:$('.selector').datepicker('option', 'shortYearCutoff', 50); 

showAnim : String : 'show'

  设置显示、隐藏日期插件的动画的名称。
  初始:$('.selector').datepicker({ showAnim: 'fold' });
  获取:var showAnim = $('.selector').datepicker('option', 'showAnim');
  设置:$('.selector').datepicker('option', 'showAnim', 'fold'); 

showButtonPanel : Boolean : false

  设置是否在面板上显示相关的按钮。
  初始:$('.selector').datepicker({ showButtonPanel: true });
  获取:var showButtonPanel = $('.selector').datepicker('option', 'showButtonPanel');
  设置:$('.selector').datepicker('option', 'showButtonPanel', true); 

showCurrentAtPos : Number : 0

  设置当多月份显示的情况下,当前月份显示的位置。自顶部/左边开始第x位。
  初始:$('.selector').datepicker({ showCurrentAtPos: 3 });
  获取:var showCurrentAtPos = $('.selector').datepicker('option', 'showCurrentAtPos');
  设置:$('.selector').datepicker('option', 'showCurrentAtPos', 3); 

showMonthAfterYear : Boolean : false

是否在面板的头部年份后面显示月份。
  初始:$('.selector').datepicker({ showMonthAfterYear: true });
  获取:var showMonthAfterYear = $('.selector').datepicker('option', 'showMonthAfterYear');
  设置:$('.selector').datepicker('option', 'showMonthAfterYear', true); 

showOn : String : 'focus' 

设置什么事件触发显示日期插件的面板,可选值:focus, button, both
  初始:$('.selector').datepicker({ showOn: 'both' });
  获取:var showOn = $('.selector').datepicker('option', 'showOn');
  设置:$('.selector').datepicker('option', 'showOn', 'both'); 

showOptions : Options : {}

如果使用showAnim来显示动画效果的话,可以通过此参数来增加一些附加的参数设置。
  初始:$('.selector').datepicker({ showOptions: {direction: 'up' });
  获取:var showOptions = $('.selector').datepicker('option', 'showOptions');
  设置:$('.selector').datepicker('option', 'showOptions', {direction: 'up'); 

showOtherMonths : Boolean : false

  是否在当前面板显示上、下两个月的一些日期数(不可选)。
  初始:$('.selector').datepicker({ showOtherMonths: true });
  获取:var showOtherMonths = $('.selector').datepicker('option', 'showOtherMonths');
  设置:$('.selector').datepicker('option', 'showOtherMonths', true); 

stepMonths : Number : 1

  当点击上/下一月时,一次翻几个月。
  初始:$('.selector').datepicker({ stepMonths: 3 });
  获取:var stepMonths = $('.selector').datepicker('option', 'stepMonths');
  设置:$('.selector').datepicker('option', 'stepMonths', 3); 

yearRange : String : '-10:+10'

  控制年份的下拉列表中显示的年份数量,可以是相对当前年(-nn:+nn),也可以是绝对值 (-nnnn:+nnnn)
  初始:$('.selector').datepicker({ yearRange: '2000:2010' });
  获取:var yearRange = $('.selector').datepicker('option', 'yearRange');
  设置:$('.selector').datepicker('option', 'yearRange', '2000:2010');

beforeShow : function(input)

  在日期控件显示面板之前,触发此事件,并返回当前触发事件的控件的实例对象。
  初始:$('.selector').datepicker({ beforeShow: function(input) { ... } }); 

beforeShowDay : function(date)

  在日期控件显示面板之前,每个面板上的日期绑定时都触发此事件,参数为触发事件的日期。调用函数后,必须返回一个数组:[0]此日期是否可选(true/false),[1]此日期的CSS样式名称(""表示默认),[2]当鼠标移至上面出现一段提示的内容。
  初始:$('.selector').datepicker({ beforeShowDay: function(date) { ... } }); 

onChangeMonthYear : function(year, month, inst)

当年份或月份改变时触发此事件,参数为改变后的年份月份和当前日期插件的实例。
  初始:$('.selector').datepicker({ onChangeMonthYear: function(year, month, inst) { ... } }); 

onClose : function(dateText, inst)

  当日期面板关闭后触发此事件(无论是否有选择日期),参数为选择的日期和当前日期插件的实例。
  初始:$('.selector').datepicker({ onClose: function(dateText, inst) { ... } }); 

onSelect : function(dateText, inst)

  当在日期面板选中一个日期后触发此事件,参数为选择的日期和当前日期插件的实例。
  $('.selector').datepicker({ onSelect: function(dateText, inst) { ... } });

以上内容给大家介绍了JQuery datepicker 用法,希望大家喜欢。

Javascript 相关文章推荐
摘自百度的图片轮换效果代码
Nov 19 Javascript
msn上的tab功能Firefox对childNodes处理的一个BUG
Jan 21 Javascript
循环 vs 递归浅谈
Feb 28 Javascript
js 3种归并操作的实例代码
Oct 30 Javascript
jQuery实现自动调整字体大小的方法
Jun 15 Javascript
js判断数组key是否存在(不用循环)的简单实例
Aug 03 Javascript
bootstrap table实现x-editable的行单元格编辑及解决数据Empty和支持多样式问题
Aug 10 Javascript
element ui里dialog关闭后清除验证条件方法
Feb 26 Javascript
Redux实现组合计数器的示例代码
Jul 04 Javascript
vue 自定义指令自动获取文本框焦点的方法
Aug 25 Javascript
vue添加axios,并且指定baseurl的方法
Sep 19 Javascript
微信小程序在ios下Echarts图表不能滑动的问题解决
Jul 10 Javascript
一道JS前端闭包面试题解析
Dec 25 #Javascript
干货分享:让你分分钟学会javascript闭包
Dec 25 #Javascript
javascript生成img标签的3种实现方法(对象、方法、html)
Dec 25 #Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
Dec 25 #Javascript
JavaScript中Window对象的属性及事件
Dec 25 #Javascript
JavaScript字符串删除重复字符的方法
Dec 25 #Javascript
JavaScript如何实现在文本框(密码框)输入提示语
Dec 25 #Javascript
You might like
提升PHP执行速度全攻略(下)
2006/10/09 PHP
laravel获取不到session的三种解决办法【推荐】
2018/09/16 PHP
jQuery 性能优化手册 推荐
2010/02/23 Javascript
8个超棒的学习 jQuery 的网站 推荐收藏
2011/04/02 Javascript
基于javascript的Form表单验证
2016/12/29 Javascript
Vue实现Layui的集成方法步骤
2020/04/10 Javascript
如何使用JavaScript实现无缝滚动自动播放轮播图效果
2020/08/20 Javascript
vue移动端下拉刷新和上滑加载
2020/10/27 Javascript
vant-ui AddressEdit地址编辑和van-area的用法说明
2020/11/03 Javascript
[28:28]Ti4 冒泡赛第二天NEWBEE vs NaVi 2
2014/07/15 DOTA
[03:22]DSPL第一期精彩集锦:酷炫到底!
2014/11/07 DOTA
[01:52]深扒TI7聊天轮盘语音出处7
2017/05/11 DOTA
[01:38]完美世界DOTA2联赛PWL S3 集锦第四期
2020/12/21 DOTA
Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
2017/01/12 Python
Django Admin实现三级联动的示例代码(省市区)
2018/06/22 Python
python numpy数组的索引和切片的操作方法
2018/10/20 Python
python使用Matplotlib改变坐标轴的默认位置
2019/10/18 Python
Django密码存储策略分析
2020/01/09 Python
Python异常原理及异常捕捉实现过程解析
2020/03/25 Python
Python OpenCV读取中文路径图像的方法
2020/07/02 Python
python3爬虫中多线程的优势总结
2020/11/24 Python
python实现模拟器爬取抖音评论数据的示例代码
2021/01/06 Python
纯css3实现鼠标经过图片显示描述的动画效果
2014/09/01 HTML / CSS
Bibloo匈牙利:女装、男装、童装及鞋子和配饰
2019/04/14 全球购物
Pharmacy Online中文直邮网站:澳洲大型药房
2020/06/27 全球购物
波兰汽车配件网上商店:iParts.pl
2020/09/08 全球购物
硕士研究生求职自荐信范文
2014/03/11 职场文书
校庆筹备方案
2014/03/30 职场文书
法制宣传月活动总结
2014/04/29 职场文书
中央空调节能方案
2014/06/15 职场文书
践行三严三实心得体会(2016推荐篇)
2016/01/06 职场文书
django如何自定义manage.py管理命令
2021/04/27 Python
MySQL学习之基础命令实操总结
2022/03/19 MySQL
Python学习之时间包使用教程详解
2022/03/21 Python
HTML静态页面获取url参数和UserAgent的实现
2022/08/05 HTML / CSS
Go结合Gin导出Mysql数据到Excel表格
2022/08/05 Golang