在web开发中,总会遇到需要用户输入日期的情况。一般都是提供一个text类型的input供用户输入日期。然而,这种方式,开发人员必须对用户输入的日期进行验证,判断其合法性。除此之外,让用户输入日期也是一件不爽的事,如果用户可以直接选择日期,这两个问题都解决了。

         我们也可以自己用javascript写一个日期选择控件,然而,想要写的很好、很漂亮却需要花不少时间和精力。jQuery有一个UI插件: datepicker ,可以帮我们实现该功能,而且界面很漂亮。下面就学学如何使用它吧。
         datepicker  插件是jQuery UI的一个插件,它提供一个日期弹出窗口(或直接显示在页面),供用户选择日期。
 
         前提条件
  • 导入jquery-1.7.2.js  ,也可以是其它版本。我做的demo是这个
  • 导入jquery-ui.js,也可以直接指向http://code.jquery.com/ui/1.10.2/jquery-ui.js 这个地址。前提是要有网络。
  • 添加对中文的支持-jquery.ui.datepicker-zh-CN.js,如果没有这个文件,显示英文版。
  • 导入jquery-ui.css,样式表也可以自定义。
        最简单的用法
 
        如果仅仅只需要输入日期,那么一句话就搞定了。如:
1
$("#date").datepicker();

显示的效果:

        简单吧,只需这一句就能弹出日期选择器。代码中的date为页面中input的id。如果我们想做的更加人性化,显然这一句就不够了。比如这个日期选择器只能按月翻,不能直接选择年份和月份。还有很多方面就不一一列举了。下面对datepicker的常用属性做个说明。
 
    常用属性
    
    changeYear : true                  //允许选择年份,默认为false
    changeMonth : true             //允许选择月份,默认为false
    numberOfMonths : 1           //显示的日期面板个数,默认为1
    showButtonPanel: true       //是否显示按钮面板(两个按钮:回到今天、关闭),默认为false。
    showOn:’button’                 //在输入框旁边显示按钮触发,默认为:focus,还可以设置为both。
    showClearButton:true        //是否显示清除按钮,有的版本可能没有提供清除按钮。
 
    为了让datepicker更加生动,我在demo中加了一些属性。代码为:
1
2
3
4
5
6
$("#date").datepicker({
changeYear : true,
changeMonth : true,
numberOfMonths : 1,
showButtonPanel: true
});

显示的效果:

    是不是相比以前的datepicker要好看一点呢,既能选择年份,还能选择月份,多方便呀。有的时候可能会遇到这样的问题。导入国际化语言包后,同时启用changeYear和changeMonth,会发现两个select都在都一列显示了。原因是juqery-ui.css造成的,原来这个文件中有这么一段:
1
2
.ui-datepicker select.ui-datepicker-month,
.ui-datepicker select.ui-datepicker-year { width: 49%;}
    把这个width的比例改成45%就能正常显示了。
    当然官网上还有更多属性供大家选择。地址为:http://jqueryui.com/demos/datepicker/ ,根据自己需要,自行选择。
 
    常用方法
 
        最常用的可能是onSelect方法了,这种情况是很常见的,比如页面有两个日期,开始时间和结束时间。很明显的道理,开始时间不能大于结束时间。onSelect方法可以为我们省去判断。代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$("#date1").datepicker({
changeYear : true,
changeMonth : true,
numberOfMonths : 1,
showButtonPanel: true,
onSelect : function(selectedDate) {
$("#date2").datepicker("option", "minDate", selectedDate);  }
});
 
$("#date2").datepicker({
changeYear : true,
changeMonth : true,
numberOfMonths : 1,
showButtonPanel: true,
onSelect : function(selectedDate) {
$("#date1").datepicker("option", "maxDate", selectedDate);  }
});

显示效果:

           如果开始时间选择了 2012-05-09,结束时间就不能选择之前的日期了。我做的demo都是比较简单的,更多功能可以去jquery UI的官网上看看。
           通过上面的例子,可以看出datepicker是一款不错的日期选择器,使用方便,容易上手,官网还提供了很多美观的皮肤。你值得拥有!
    

原创文章,转载请注明: 转载自java开发者

本文链接地址: jquery datepicker-强大的日期控件

jquery datepicker-强大的日期控件的更多相关文章

  1. jsp日期插件My97DatePicker 强大的日期控件 使用方便简单

    本文属转载(希望对编程爱好者有所帮助)详情请访问官方网站 http://www.my97.net/dp/index.asp 一. 简介 1. 简介 目前的版本是:4.7 2. 注意事项 My97Dat ...

  2. jsp日期插件My97DatePicker 强大的日期控件 使用方便简单(转)

    本文属转载(希望对编程爱好者有所帮助)详情请访问官方网站 http://www.my97.net/dp/index.asp 一. 简介 1. 简介 目前的版本是:4.7 2. 注意事项 My97Dat ...

  3. JQuery EasyUI 扩展方法 日期控件 设置时间段函数

    /** Jquery扩展方法--by hgx 2018年1月8日-- * 设置时间段函数,开始时间(1号)与结束时间(当前日期) * 传入参数:--spaceMonth:查询间隔月,1为间隔查询一个月 ...

  4. jQuery Datepicker日期控件

    datepicker可以为bootstrap添加一个事件选择控件,适用于任何需要调用的场合,支持多种事件格式输出(比如:dd, d, mm, m, yyyy, yy等),是制作网页不可缺失的插件. R ...

  5. JQuery datepicker 日期控件设置

    datepicker控件可通过参数设置进行语言切换,以下可实现,系统所有日期控件默认为中文,在特定页面或者特定条件下可切换成英语!~ HTML: <!DOCTYPE html> <h ...

  6. jQuery里面的datepicker日期控件默认是显示英文的,如何显示中文或其他语言呢?

    jQuery里面的datepicker日期控件默认是显示英文的,如何让他显示中文或其他呢? [官方的写法]: (1)引入JS文件: <script type="text/javascr ...

  7. jQuery UI 日期控件--datepicker

    在web开发中,日期的输入经常会遇到.我们会用的解决方法有: 1.自己写css和js,对日期进行控制:----有点浪费精力和时间: 2.用easyui插件中的日期插件来实现: 3.用juqery-ui ...

  8. 【前端控件】JQuery datepicker 日期控件设置

    datepicker控件可通过参数设置进行语言切换,以下可实现,系统所有日期控件默认为中文,在特定页面或者特定条件下可切换成英语!~ HTML: <!DOCTYPE html> <h ...

  9. 精确到秒的JQuery日期控件

    项目中需要用到精确到秒的日期控件,到网上搜了一下,发现有一个JQuery控件可以实现该功能---TimerPicker.但是官网上没有提供该控件的完整Demo,而且没有提供汉化包,所以自己汉化了一下, ...

随机推荐

  1. .NET4安装总进度一直不动的解决办法

    在安装.NET4时遇到上面的进度在动,而安装进度一直停在0,解决办法: 禁止并关闭Window Update服务,重新运行安装程序. 关闭服务:控制面板->管理工具->服务->Win ...

  2. java 非法字符过滤 , 半角/全角替换

    java 非法字符过滤 , 半角/全角替换 package mjorcen.netty.test1; import java.io.UnsupportedEncodingException; publ ...

  3. HDU 5629 Clarke and tree dp+prufer序列

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=562 题意: 求给每个节点的度数允许的最大值,让你求k个节点能组成的不同的生成树个数. 题解: 对于n ...

  4. dragsort拖动插件的使用

    <!DOCTYPE html><html><head> <title>DragSort Example</title> <meta c ...

  5. DIV+CSS高手必知的15个CSS常识

    1.不要使用过小的图片做背景平铺.这就是为何很多人都不用 1px 的原因,这才知晓.宽高 1px 的图片平铺出一个宽高 200px 的区域,需要 200*200=40, 000 次,占用资源. 2.无 ...

  6. jQuery插件手把手教会(二)

    上次我们将到了简单的jQuery插件,这次我们继续: 面向对象的插件开发 为什么要有面向对象的思维,因为如果不这样,你可能需要一个方法的时候就去定义一个function,当需要另外一个方法的时候,再去 ...

  7. [原] GLES在iOS和Android上的不同

    本来GLES提供了与native platform的接口 EGL, 然而iOS没有使用EGL接口, 而是自己搞了一套,叫做EAGL的类似东西, 虽然说大同小异,但是在做跨平台的时候还是很恶心. elg ...

  8. hdu 2112 HDU Today (最短路,字符处理)

    题目 题目很简单,只是多了对地名转化为数字的处理,好吧,这我也是参考网上的处理办法,不过大多数的人采用map来处理 注意初始化注意范围,不然会wa!!!(这是我当时wa的原因org) 大家容易忽视的地 ...

  9. HDU 3461 Code Lock(并查集,合并区间,思路太难想了啊)

    完全没思路,题目也没看懂,直接参考大牛们的解法. http://www.myexception.cn/program/723825.html 题意是说有N个字母组成的密码锁,如[wersdfj],每一 ...

  10. the-type-java-lang-charsequence-cannot-be-resolved-in-package-declaration

    http://stackoverflow.com/questions/24301986/the-type-java-lang-charsequence-cannot-be-resolved-in-pa ...