jQuery日历插件datepicker用法详解


Posted in Javascript onMarch 03, 2016

 jQuery是一款不可多得的非常优秀的javascript脚本开发库,而基于其上的很多插件也是非常规范和卓越的,如果错过这番美景真是太可惜了,比如datepicker这个插件。

一般MIS系统的前端,尤其是用户注册页面,都会有诸如“出身年月”的日期输入框,最简单的做法就是使用一个<input type="text"/>标签,这样做的弊端有很多:首先是与数据库字段类型的匹配、其次是输入日期的合法性如“13月”或者闰年等等问题,如果深入下去还有非常多的地方值得推敲。当前比较流行的做法是使用下拉菜单<select><option></option></select>来构造,但是这样做无论交互性、复杂度和可移植性都不尽如人意,因为至少需要构建3个联动的下拉菜单,需要自己编写大量的脚本处理日期合法性。

datepicker带来了美好的春天,先看看使用默认样式时它的样子:

jQuery日历插件datepicker用法详解

完全GUI般的用户体验,炫目的动态展现效果,精确的日期控制和高度的灵活的参数配置,这一切使得datepicker受到众多开发者的青睐,其中包括大名鼎鼎的google,在其google calendar项目中就使用了这个脚本,有兴趣可以去看看。顺便??乱痪洌?贤嫉哪?闲Ч???avascript中,用户只需写一句话就可以实现了,怎么样,心动了吧,follow me:

1.下载jQuery核心文件就不用说了吧,datepicker是轻量级插件,只需jQuery的min版本就行了,然后下载datepicker(内含jQuery1.2.6_min),您也可以到官方网站下载:http://marcgrabanski.com/pages/code/jquery-ui-datepicker。

2.在HTML中引用下载下来的两个js:

<script language="javascript" src="js/jquery-1.2.6.min.js"></script>
<script language="javascript" src="js/ui.datepicker.js"></script>

3.在HTML中引入默认样式表文件,这个文件也在刚刚的压缩包中,如果在官网下载,首页就有这个CSS文件下载,也可选择其他皮肤的CSS:

<link rel="stylesheet" href="js/ui.datepicker.css" type="text/css" media="screen" title="core css file" charset="utf-8" />

4.在HTML中插入文本域,最好设置成只读,不接受用户的手动输入,防止格式混乱,以id标记好。

<input id="dateinput" type="text" readonly="readonly"/>

5.编写js代码,实现最终效果。

<script language="javascript">
$(document).ready(function() { 
 $('#dateinput').datepicker(); 
 }); 
</script>

这样就基本完成一个日期输入文本域了,但是是英文的,根据不同的MIS系统,有的目标人群是上了年级的用户,建议将界面改成中文,可以如此操作,稍微改动一下刚刚的函数,like this:

<script language="javascript">
$(document).ready(function() { 
 $('#dateinput').datepicker({ 
  dateFormat: 'yy-mm-dd', //日期格式,自己设置
  buttonImage: 'calendar.gif', //按钮的图片路径,自己设置
  buttonImageOnly: true, //Show an image trigger without any button.
  showOn: 'both',//触发条件,both表示点击文本域和图片按钮都生效
 yearRange: '1990:2008',//年份范围
 clearText:'清除',//下面的就不用详细写注释了吧,呵呵,都是些文本设置
 closeText:'关闭',
 prevText:'前一月',
 nextText:'后一月',
 currentText:' ',
 monthNames:['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'],
 }); 
 }); 
</script>

OK,大功告成,我根据自己的要求,写的页面的代码如下,仅供参考,自己尝试一下吧:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<link rel="stylesheet" href="js/ui.datepicker.css" type="text/css" media="screen" title="core css file" charset="utf-8" />
<script language="javascript" src="js/jquery-1.2.6.min.js"></script>
<script language="javascript" src="js/ui.datepicker.js"></script>
<script language="javascript">
$(document).ready(function() { 
 var yearFrom=new Date().getYear()-60+1900;
 var yearTo=new Date().getYear()-18+1900; 
 $('#dateinput').datepicker({ 
 dateFormat: 'yy-mm-dd', 
 buttonImage: 'calendar.gif', 
 buttonImageOnly: true, 
 showOn: 'both',
 yearRange: yearFrom+':'+yearTo,
 clearText:'清除',
 closeText:'关闭',
 prevText:'前一月',
 nextText:'后一月',
 currentText:' ',
 monthNames:['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'],
 }); 
 }); 
</script>
</head>
<body>
<input id="dateinput" type="text" readonly="readonly"/>
</body>
</html>

以上就是关于jQuery日历插件datepicker用法详细介绍,希望对大家的学习有所帮助。

Javascript 相关文章推荐
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
May 24 Javascript
JS获取月的最后一天与JS得到一个月份最大天数的实例代码
Dec 16 Javascript
JQuery遍历json数组的3种方法
Nov 08 Javascript
js中this的用法实例分析
Jan 10 Javascript
JS实现的相册图片左右滚动完整实例
Nov 23 Javascript
js实现手机发送验证码功能
Mar 13 Javascript
分享19个JavaScript 有用的简写写法
Jul 07 Javascript
对于Javascript 执行上下文的全面了解
Sep 05 Javascript
JS模拟实现哈希表及应用详解
May 04 Javascript
angularjs中判断ng-repeat是否迭代完的实例
Sep 12 Javascript
angularJs提交文本框数据到后台的方法
Oct 08 Javascript
layer提示框添加多个按钮选择的实例
Sep 12 Javascript
初步使用Node连接Mysql数据库
Mar 03 #Javascript
初步使用bootstrap快速创建页面
Mar 03 #Javascript
JS动态增删表格行的方法
Mar 03 #Javascript
微信jssdk在iframe页面失效问题的解决措施
Mar 03 #Javascript
基于javascript html5实现多文件上传
Mar 03 #Javascript
编写高质量JavaScript代码的基本要点
Mar 02 #Javascript
JS获取当前脚本文件的绝对路径
Mar 02 #Javascript
You might like
php 表单数据的获取代码
2009/03/10 PHP
解析百度搜索结果link?url=参数分析 (全)
2012/10/09 PHP
php动态函数调用方法
2015/05/21 PHP
54个提高PHP程序运行效率的方法
2015/07/19 PHP
既简单又安全的PHP验证码 附调用方法
2016/06/02 PHP
PHP学习记录之数组函数
2018/06/01 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
2019/10/09 PHP
JavaScript入门教程(9) Document文档对象
2009/01/31 Javascript
JavaScript 监听textarea中按键事件
2009/10/08 Javascript
javascript数组快速打乱重排的方法
2014/01/02 Javascript
javascript里使用php代码实例
2014/12/13 Javascript
微信小程序 Video API实例详解
2016/10/02 Javascript
利用Node.JS实现邮件发送功能
2016/10/21 Javascript
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
2018/01/11 Javascript
关于HTTP传输中gzip压缩的秘密探索分析
2018/01/12 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(上)
2018/04/18 Javascript
JavaScript从原型到原型链深入理解
2019/06/03 Javascript
JS数据类型STRING使用实例解析
2019/12/18 Javascript
Vue解决echart在element的tab切换时显示不正确问题
2020/08/03 Javascript
ant design vue 表格table 默认勾选几项的操作
2020/10/31 Javascript
[01:10]DOTA2亚洲邀请赛 征战号角响彻全场
2015/01/06 DOTA
Django的session中对于用户验证的支持
2015/07/23 Python
python3.6 实现AES加密的示例(pyCryptodome)
2018/01/10 Python
名片管理系统python版
2018/01/11 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
2018/06/19 Python
python实现决策树分类(2)
2018/08/30 Python
Python面向对象思想与应用入门教程【类与对象】
2019/04/12 Python
Python安装与卸载流程详细步骤(图解)
2020/02/20 Python
Python开发企业微信机器人每天定时发消息实例
2020/03/17 Python
Python图像处理二值化方法实例汇总
2020/07/24 Python
超市仓管员岗位职责
2014/04/07 职场文书
2014年英语教学工作总结
2014/12/17 职场文书
学生会辞职信
2015/03/02 职场文书
运动会三级跳加油稿
2015/07/21 职场文书
详解Redis在SpringBoot工程中的综合应用
2021/10/16 Redis
Fluentd搭建日志收集服务
2022/09/23 Servers