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 相关文章推荐
JavaScript 解析读取XML文档 实例代码
Jul 07 Javascript
JQuery中的ready函数冲突的解决方法
May 17 Javascript
模拟多级复选框效果的jquery代码
Aug 13 Javascript
重写document.write实现无阻塞加载js广告(补充)
Dec 12 Javascript
localResizeIMG先压缩后使用ajax无刷新上传(移动端)
Aug 11 Javascript
jQuery实现折叠、展开的菜单组效果代码
Sep 16 Javascript
理解 JavaScript Scoping &amp; Hoisting(二)
Nov 18 Javascript
JS+jQuery实现注册信息的验证功能
Sep 26 jQuery
JS打印彩色菱形的实例代码
Aug 15 Javascript
vue里面v-bind和Props 利用props绑定动态数据的方法
Aug 27 Javascript
Vue项目中使用better-scroll实现菜单映射功能方法
Sep 11 Javascript
JS删除对象中某一属性案例详解
Sep 08 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编程中八种常见的文件操作方式
2006/11/19 PHP
php下使用strpos需要注意 === 运算符
2010/07/17 PHP
php+mysqli使用面向对象方式查询数据库实例
2015/01/29 PHP
php简单计算页面加载时间的方法
2015/06/19 PHP
Thinkphp关闭缓存的方法
2015/06/26 PHP
PHP定时任务获取微信access_token的方法
2016/10/10 PHP
WordPress 照片lightbox效果的运用几点
2009/06/22 Javascript
Javascript 复制数组实现代码
2009/11/26 Javascript
简单的jquery拖拽排序效果实现代码
2011/09/20 Javascript
js验证IP及子网掩码的合法性有效性示例
2014/04/30 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
2014/07/18 Javascript
Javascript中使用parseInt函数需要注意的问题
2015/04/02 Javascript
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
jQuery实现的仿百度分页足迹效果代码
2015/10/30 Javascript
JS及PHP代码编写八大排序算法
2016/07/12 Javascript
vue登录路由验证的实现
2017/12/13 Javascript
NodeJs搭建本地服务器之使用手机访问的实例讲解
2018/05/12 NodeJs
vue实现微信获取用户信息的方法
2019/03/21 Javascript
jQuery实现开关灯效果
2020/08/02 jQuery
原生JavaScript实现弹幕组件的示例代码
2020/10/12 Javascript
[05:15]DOTA2英雄梦之声_第16期_灰烬之灵
2014/06/21 DOTA
[49:35]LGD vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
基于python的汉字转GBK码实现代码
2012/02/19 Python
python实现数据写入excel表格
2018/03/25 Python
Python实现EXCEL表格的排序功能示例
2019/06/25 Python
django中使用POST方法获取POST数据
2019/08/20 Python
让Django的BooleanField支持字符串形式的输入方式
2020/05/20 Python
html5中 media(播放器)的api使用指南
2014/12/26 HTML / CSS
美国在线纱线商店:Darn Good Yarn
2019/03/20 全球购物
LUISAVIAROMA中国官网:时尚奢侈品牌购物网站
2020/11/01 全球购物
简述安装Slackware Linux系统的过程
2012/05/08 面试题
国际贸易个人求职信范文
2014/01/04 职场文书
艺校音乐专业自我鉴定范文
2014/03/01 职场文书
建筑工地大门标语
2014/06/18 职场文书
2014年幼儿园教研工作总结
2014/12/04 职场文书
Java 中的 Unsafe 魔法类的作用大全
2021/06/26 Java/Android