jQuery插件datepicker的使用详解

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

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

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

   jQuery插件datepicker的使用详解 - leiSIr - LeiSIr的博客

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

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

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>无标题文档</title>
  6. <link rel="stylesheet" href="js/ui.datepicker.css" type="text/css" media="screen" title="core css file" charset="utf-8" />
  7. <script language="javascript" src="js/jquery-1.2.6.min.js"></script>
  8. <script language="javascript" src="js/ui.datepicker.js"></script>
  9. <script language="javascript">
  10. $(document).ready(function() {  
  11.          var yearFrom=new Date().getYear()-60+1900;
  12.          var yearTo=new Date().getYear()-18+1900;      
  13.         $('#dateinput').datepicker({  
  14.         dateFormat: 'yy-mm-dd',  
  15.         buttonImage: 'calendar.gif',  
  16.         buttonImageOnly: true,  
  17.         showOn: 'both',
  18.         yearRange: yearFrom+':'+yearTo,
  19.         clearText:'清除',
  20.         closeText:'关闭',
  21.         prevText:'前一月',
  22.         nextText:'后一月',
  23.         currentText:' ',
  24.         monthNames:['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'],
  25.         });  
  26.     });  
  27. </script>
  28. </head>
  29. <body>
  30. <input id="dateinput" type="text" readonly="readonly"/>
  31. </body>
  32. </html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值