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 相关文章推荐
tagName的使用,留一笔
Jun 26 Javascript
Js动态创建div
Sep 25 Javascript
js控制CSS样式属性语法对照表
Dec 11 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记8)
Dec 24 Javascript
基于jQuery Tipso插件实现消息提示框特效
Mar 16 Javascript
详解jQuery同步Ajax带来的UI线程阻塞问题及解决办法
Aug 09 jQuery
关于Vue Webpack2单元测试示例详解
Aug 14 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
Sep 21 Javascript
小程序实现页面顶部选项卡效果
Nov 06 Javascript
element-ui table span-method(行合并)的实现代码
Dec 20 Javascript
微信小程序用户授权,以及判断登录是否过期的方法
May 10 Javascript
JS中的算法与数据结构之二叉查找树(Binary Sort Tree)实例详解
Aug 16 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
mac下安装nginx和php
2013/11/04 PHP
新手入门常用代码集锦
2007/01/11 Javascript
解决AJAX中跨域访问出现'没有权限'的错误
2008/08/20 Javascript
eval的两组性能测试数据
2012/08/17 Javascript
使用apply方法处理数组的三个技巧[译]
2012/09/20 Javascript
在Python中使用glob模块查找文件路径的方法
2015/06/17 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
JQuery动态添加Select的Option元素实现方法
2016/08/29 Javascript
基于Bootstrap 3 JQuery及RegExp的表单验证功能
2017/02/16 Javascript
jQuery ajax请求struts action实现异步刷新
2017/04/19 jQuery
nodejs+mongodb aggregate级联查询操作示例
2018/03/17 NodeJs
Vue 应用中结合vux使用微信 jssdk的方法
2018/08/28 Javascript
vue列表数据发生变化指令没有更新问题及解决方法
2020/01/16 Javascript
微信小程序实现身份证取景框拍摄
2020/09/09 Javascript
python 文件与目录操作
2008/12/24 Python
python处理PHP数组文本文件实例
2014/09/18 Python
python实现提取百度搜索结果的方法
2015/05/19 Python
Python实现七彩蟒蛇绘制实例代码
2018/01/16 Python
python对html过滤处理的方法
2018/10/21 Python
解决python3读取Python2存储的pickle文件问题
2018/10/25 Python
Django models.py应用实现过程详解
2019/07/29 Python
深入学习python多线程与GIL
2019/08/26 Python
python如何实现不用装饰器实现登陆器小程序
2019/12/14 Python
python框架flask入门之环境搭建及开启调试
2020/06/07 Python
python中format函数如何使用
2020/06/22 Python
通过代码实例解析Pytest运行流程
2020/08/20 Python
html5拖曳操作 HTML5实现网页元素的拖放操作
2013/01/02 HTML / CSS
美国最大的农村生活方式零售店:Tractor Supply Company(TSC)
2017/05/15 全球购物
英国自行车商店:AW Cycles
2021/02/24 全球购物
优秀研究生主要事迹
2014/06/03 职场文书
党的群众路线教育实践活动宣传标语口号
2014/06/06 职场文书
2014机关党员干部“正风肃纪”思想汇报
2014/09/15 职场文书
商场收银员岗位职责
2015/04/07 职场文书
学校财务管理制度
2015/08/04 职场文书
2019关于垃圾分类处理的调查报告
2019/12/26 职场文书
Linux安装apache服务器的配置过程
2021/11/27 Servers