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获取浏览器中的分辨率实现代码
Apr 23 Javascript
javascript中的previousSibling和nextSibling的正确用法
Sep 16 Javascript
深入学习JavaScript对象
Oct 13 Javascript
浅谈javascript的call()、apply()、bind()的用法
Feb 21 Javascript
原生JS实现图片翻书效果
Feb 16 Javascript
修改 bootstrap table 默认detailRow样式的实例代码
Jul 21 Javascript
基于jquery实现多级菜单效果
Jul 25 jQuery
详解win7 cmd执行vue不是内部命令的解决方法
Jul 27 Javascript
Node.js log4js日志管理详解
Jul 31 Javascript
vue使用自定义指令实现拖拽
Jan 29 Javascript
JS如何生成动态列表
Sep 22 Javascript
VueCli生产环境打包部署跨域失败的解决
Nov 13 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
Sony CFR 320 修复改造
2020/03/14 无线电
php根据指定位置和长度获得子字符串的方法
2015/03/17 PHP
php5.4传引用时报错问题分析
2016/01/22 PHP
php使用PDO下exec()函数查询执行后受影响行数的方法
2017/03/28 PHP
用php+ajax新建流程(请假、进货、出货等)
2017/06/11 PHP
二级域名或跨域共享Cookies的实现方法
2008/08/07 Javascript
jQuery 使用手册(五)
2009/09/23 Javascript
JavaScript中的await/async的作用和用法
2016/10/31 Javascript
Bootstrap基本插件学习笔记之标签切换(17)
2016/12/08 Javascript
js微信支付实现代码
2016/12/22 Javascript
jQuery基于Ajax方式提交表单功能示例
2017/02/10 Javascript
Vue内容分发slot(全面解析)
2017/08/19 Javascript
详解Nodejs内存治理
2018/05/13 NodeJs
JavaScript深入V8引擎以及编写优化代码的5个技巧
2019/06/24 Javascript
基于ssm框架实现layui分页效果
2019/07/27 Javascript
[46:59]完美世界DOTA2联赛PWL S2 GXR vs Ink 第二场 11.19
2020/11/20 DOTA
[36:16]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.19
2020/12/24 DOTA
使用PyInstaller将Python程序文件转换为可执行程序文件
2016/07/08 Python
开源Web应用框架Django图文教程
2017/03/09 Python
TensorFlow在MAC环境下的安装及环境搭建
2017/11/14 Python
手把手教你用python抢票回家过年(代码简单)
2018/01/21 Python
python3+PyQt5实现支持多线程的页面索引器应用程序
2018/04/20 Python
如何在mac下配置python虚拟环境
2020/07/06 Python
详解HTML5 LocalStorage 本地存储
2016/12/23 HTML / CSS
传播学毕业生求职信
2013/10/11 职场文书
超市采购员岗位职责
2014/02/01 职场文书
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
高三家长寄语
2014/04/03 职场文书
寄语学生的话
2014/04/10 职场文书
服务明星事迹材料
2014/12/29 职场文书
银行求职信范文怎么写
2015/03/20 职场文书
2015年党总支工作总结
2015/05/25 职场文书
观后感开头
2015/06/19 职场文书
导游词之广东佛山(南风古灶)
2019/09/24 职场文书
Go 语言中 20 个占位符的整理
2021/10/16 Golang
Python函数中apply、map、applymap的区别
2021/11/27 Python