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将从数据库中读取出来的日期型格式化为想要的类型。
Aug 15 Javascript
BOM与DOM的区别分析
Oct 26 Javascript
javascript中clone对象详解
Dec 03 Javascript
Redis基本知识、安装、部署、配置笔记
Mar 05 Javascript
jQuery EasyUi实战教程之布局篇
Jan 26 Javascript
JS实现图片局部放大或缩小的方法
Aug 20 Javascript
理解javascript中的Function.prototype.bind的方法
Feb 03 Javascript
vue.js 实现输入框动态添加功能
Jun 25 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
Aug 08 jQuery
VUE v-model表单数据双向绑定完整示例
Jan 21 Javascript
jQuery实现的图片点击放大缩小功能案例
Jan 02 jQuery
解决ant-design-vue中menu菜单无法默认展开的问题
Oct 31 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
咖啡知识 咖啡养豆要养多久 排气又是什么
2021/03/06 新手入门
详解PHP安装mysql.so扩展的方法
2016/12/31 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
2017/05/29 PHP
Laravel框架使用Redis的方法详解
2018/05/30 PHP
理解Javascript_12_执行模型浅析
2010/10/18 Javascript
使用jquery中height()方法获取各种高度大全
2014/04/02 Javascript
使用javascript实现判断当前浏览器
2015/04/14 Javascript
javascript基于DOM实现省市级联下拉框的方法
2015/05/14 Javascript
React实现点击删除列表中对应项
2017/01/10 Javascript
js中DOM三级列表(代码分享)
2017/03/20 Javascript
基于js的变量提升和函数提升(详解)
2017/09/17 Javascript
vue-scroller记录滚动位置的示例代码
2018/01/17 Javascript
js限制input只能输入有效的数字(第一个不能是小数点)
2018/09/28 Javascript
微信小程序结合mock.js实现后台模拟及调试
2019/03/28 Javascript
ES7之Async/await的使用详解
2019/03/28 Javascript
详解Vue中的Props与Data细微差别
2020/03/02 Javascript
vue flex 布局实现div均分自动换行的示例代码
2020/08/05 Javascript
Python开发编码规范
2006/09/08 Python
python 遍历字符串(含汉字)实例详解
2017/04/04 Python
Python3.6安装及引入Requests库的实现方法
2018/01/24 Python
小白如何入门Python? 制作一个网站为例
2018/03/06 Python
Python代码块批量添加Tab缩进的方法
2018/06/25 Python
python读取excel指定列数据并写入到新的excel方法
2018/07/10 Python
django中使用事务及接入支付宝支付功能
2019/09/15 Python
django 解决自定义序列化返回处理数据为null的问题
2020/05/20 Python
Django crontab定时任务模块操作方法解析
2020/09/10 Python
Python urlopen()参数代码示例解析
2020/12/10 Python
iframe跨域的几种常用方法
2019/11/11 HTML / CSS
Clarks鞋澳大利亚官方网站:Clarks Australia
2019/12/25 全球购物
2014年预备党员学习两会心得体会
2014/03/17 职场文书
交警正风肃纪剖析材料
2014/10/29 职场文书
党的群众路线教育实践活动心得体会(乡镇)
2014/11/03 职场文书
长城英文导游词
2015/01/30 职场文书
2015年高考寄语或鼓励的话
2015/03/23 职场文书
教育读书笔记
2015/07/02 职场文书
Java 超详细讲解hashCode方法
2022/04/07 Java/Android