`

jQuery学习之:Datepicker日期选择插件

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

我们可以自己用javascript写一个日期选择控件,然而,想要写的很好、很漂亮却需要花不少时间和精力。jQuery有一个UI插件:datepicher,可以帮我们实现该功能,而且界面很漂亮。下面就学学如何使用它吧。

datepicher插件是jQuery UI的一个插件,它提供一个日期弹出窗口(或直接显示在页面),供用户选择日期。

datepicher插件的使用很简单,语法如下:

$("#regDate").datepicher(optional);


其中optional是一个对象,该对象的每一个属性及含义可以参看官方文档:http://jqueryui.com/demos/datepicker/。在此,仅介绍一些常用的属性。

1、datepicher最简单的使用

$("#regDate").datepicher();


其中,regDate是页面日期输入框的ID属性值。

就这一句话,在日期输入框获得焦点时,就会弹出一个日期选择窗口。然而,这时候的日期选择窗口有很多不方便的地方,比如:只能一个月一个月的往前或往后,没有关闭按钮等。

2、配置datepicher

通过给datepicher设置一些属性值可以改变默认的显示。如:

$("#regDate").datepicker(
 {
  showMonthAfterYear: true, // 月在年之后显示
  changeMonth: true,   // 允许选择月份
  changeYear: true,   // 允许选择年份
  dateFormat:'yy-mm-dd',  // 设置日期格式
  closeText:'关闭',   // 只有showButtonPanel: true才会显示出来
  duration: 'fast',
  showAnim:'fadeIn',
  showOn:'button',   // 在输入框旁边显示按钮触发,默认为:focus。还可以设置为both
  buttonImage: 'images/commons/calendar.gif',   // 按钮图标
  buttonImageOnly: true,        // 不把图标显示在按钮上,即去掉按钮
  buttonText:'选择日期',
  showButtonPanel: true,
  showOtherMonths: true,
  //appendText: '(yyyy-mm-dd)',
 });


这个时候的日期选择就很方便了。可以自由选择年份和月份。

3、增加清除按钮和日期判断功能(增强版datepicher1.7.2)

datepicher1.7.2版本没有提供清除按钮,这让人有点遗憾。(好像之前的版本有提供)。没有清除按钮是很不方便的,特别是输入框获得焦点就弹出日期选择窗口的情况更是如此,因为这时想要清除输入框中的日期比较麻烦。在此推荐一位网友提供的增强版datepicher1.7.2。该增强版datepicher1.7.2不仅实现了清除按钮功能,而且增加了日期大小比较验证,比如:一个日期只能在另一个之后。可以访问该网址查看:http://www.cnblogs.com/yasin/archive/2009/07/10/1520736.html。这时datepicher的使用已经相当完美:

$(function()
{
 $("#effDate").datepicker(
 {
  showMonthAfterYear: true, // 月在年之后显示
  changeMonth: true,   // 允许选择月份
  changeYear: true,   // 允许选择年份
  dateFormat:'yy-mm-dd',  // 设置日期格式
  showClearButton: true,
  //clearText: '清除',
  closeText:'关闭',   // 只有showButtonPanel: true才会显示出来
  duration: 'fast',
  showAnim:'fadeIn',
  showOn:'button',
  buttonImage: 'images/commons/calendar.gif',
  buttonImageOnly: true,
  buttonText:'选择日期',
  showButtonPanel: true,
  showOtherMonths: true,
  //appendText: '(yyyy-mm-dd)',
  onSelect: function(dateText, inst)    // 使结束时间大于开始时间
  {
   /**
    * 以下写法在IE中出现问题。
    * $('#expDate').datepicker('option', 'minDate', new Date(dateText.replace(/-/g,',')));
    * 时,在结束(过期时间)选择时,年会没有,而且控制会失效。通过调试,发现new Date(dateText.replace(/-/g,','))
    * 返回的结果是NaN。说明Date对象不能这么构造(但是Firefox可以)
    */ 
    var arys = new Array();
    var arys = dateText.split('-');
    $('#expDate').datepicker('option', 'minDate', new Date(arys[0],arys[1]-1,arys[2]));
  }
 });
 
 $("#expDate").datepicker(
 {
  showMonthAfterYear: true, // 月在年之后显示
  changeMonth: true,   // 允许选择月份
  changeYear: true,   // 允许选择年份
  dateFormat:'yy-mm-dd',  // 设置日期格式
  showClearButton: true,  // 自定义的方法(1.7.2没有清除按钮)
  //clearText: '清除',   // 自定义的文本,在文档在有定义(js中)
  closeText:'关闭',   // 只有showButtonPanel: true才会显示出来
  duration: 'fast',
  showAnim:'fadeIn',
  showOn:'button',   // 在输入框旁边显示按钮触发,默认为:focus。还可以设置为both
  buttonImage: 'images/commons/calendar.gif',   // 按钮图标
  buttonImageOnly: true,        // 不把图标显示在按钮上,即去掉按钮
  buttonText:'选择日期',
  showButtonPanel: true,
  showOtherMonths: true,
  //appendText: '(yyyy-mm-dd)',
  onSelect: function(dateText, inst)
  {
   var arys = new Array();
   var arys = dateText.split('-');
   $('#effDate').datepicker('option','maxDate',new Date(arys[0],arys[1]-1,arys[2]));
  }
 });
});


4、国际化

datepicher提供了国际化的功能。只需将ui.datepicker-zh-CN.js导入页面即可。(或者导入jquery-ui-i18n.js,该文件包含了很多中语言)注意,如果想使用上面提到的增强版datepicher1.7.2,则需要下载作者提供的国际化文件。另外,如果用Eclipse之类的工具编码,注意用eclipse打开国际化文件看看,很有可能显示为乱码。只需要把文件的编码格式改为utf-8,然后用其他编辑工具,如editplus打开国际化文件,拷贝,粘贴覆盖eclipse中的,保存就OK了。

5、国际化为中文可能遇到的显示问题

在使用国际化同时启用changeYear和changeMonth后,两个select显示为两行,很不好看。找了好久,发现在官方提供的jquery-ui-1.7.2.custom.css中,应该作如下几处修改:
.ui-datepicker .ui-datepicker-title select { float:left; font-size:1em; margin:1px 0; }
.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
.ui-datepicker select.ui-datepicker-month,
.ui-datepicker select.ui-datepicker-year { width: 49%;}
.ui-datepicker .ui-datepicker-title select.ui-datepicker-year { float: right; }
应该改为:
.ui-datepicker .ui-datepicker-title select {font-size:1em; margin:1px 0; }
.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
.ui-datepicker select.ui-datepicker-month,
.ui-datepicker select.ui-datepicker-year { width: 47%;}
.ui-datepicker .ui-datepicker-title select.ui-datepicker-year { float: left; }
就OK了

6、换肤

jQuery UI预定义了很多皮肤,下载后,只需在页面引入相应皮肤的jquery-ui-1.7.2.custom.css可以实现换肤。如果给用户提供换肤功能,可以通过js控制,实现换肤。

总结:

可以看出,datepicher是一个很好用的插件,比自己写的肯定要好用很多,推荐大家使用。

另外,在使用中,可以定义一个文件,包含该插件的使用,配置好。以后有需要使用的地方,引入该文件,同时传给当前需要使用日期选择控件的id属性,这样便可以只配置一次了。
4
0
分享到:
评论

相关推荐

    jquery datepicker日期选择插件鼠标点击text

    jquery datepicker日期选择插件鼠标点击text jquery datepicker日期选择插件鼠标点击text jquery datepicker日期选择插件鼠标点击text jquery datepicker日期选择插件鼠标点击text

    jQuery学习之Datepicker日期选择插件.docx

    在Web开发中,jQuery UI的Datepicker插件是一个非常实用的工具,用于处理日期选择的交互,极大地提升了用户体验。Datepicker允许用户通过一个简洁、友好的界面选择日期,而不是手动输入,同时也帮助开发者轻松地验证...

    jQuery学习之Datepicker日期选择插件.pdf

    Datepicker插件是jQuery UI框架的一部分,它能生成一个可交互的日历弹窗,让用户能够方便地选择日期,而无需手动输入。基本的使用方法是通过调用`.datepicker()`函数,指定一个ID为`regDate`的input元素,如下所示:...

    jquery日期插件-datepicker

    《jQuery日期插件:DatePicker详解》 在网页开发中,日期选择器是一个常见的功能,用于让用户方便地输入或选择日期。jQuery UI中的DatePicker插件是一个强大的工具,它提供了丰富的自定义选项,使得日期选择功能既...

    jQuery插件之三:日期选择器 DatePicker 1.8.12

    2. 初始化插件:接着,通过JavaScript代码来绑定DatePicker到特定的输入元素上。 ```javascript $(function() { $("#dateInput").datepicker(); }); ``` 这里,`#dateInput`是你要添加日期选择器的元素ID。 三、...

    jquery mobile datepicker 手机端日期选择器

    jQuery Mobile Datepicker 是一个专为手机端设计的日期选择器插件,它基于流行的 jQuery 和 jQuery Mobile 库,为开发者提供了丰富的功能和自定义选项。本文将深入探讨这个插件的使用方法、核心功能以及如何对其进行...

    jQuery Datepicker 日期选择插件

    jQuery Datepicker 是一个非常流行的前端开发插件,用于在网页中添加日期选择功能。这个插件是jQuery UI库的一部分,提供了丰富的自定义选项和多语言支持,使得在网页上实现美观且用户友好的日期输入变得简单。在本...

    jQuery时间选择器datepicker年月日时分秒选择

    其中,jQuery UI是jQuery的一个扩展库,提供了一系列可交互的用户界面组件,其中包括我们今天要讨论的"日期选择器"——jQuery UI Datepicker。这个插件允许用户方便地选择日期,甚至可以扩展到选择时间,实现年月日...

    jQuery datepicker 日期选择器 中文汉化版 开始日期结束日期

    综上所述,jQuery datepicker日期选择器提供了强大的日期输入功能,结合中文汉化文件,能为中文用户提供流畅的体验。同时,其丰富的配置选项和事件处理机制,使得它在各种网页应用中都能灵活运用。

    实用漂亮jQuery网页日历插件datePicker下载

    本资源提供了一个实用且漂亮的jQuery日历插件——datePicker,它可以帮助开发者轻松地在网页上添加日期选择功能,提升用户体验。下面将详细介绍这个jQuery网页日历插件datePicker的相关知识点。 1. jQuery ...

    jQuery UI Datepicker插件timepicker时分秒

    在Web开发中,日期和时间的选择常常是一项必不可少的功能,jQuery UI Datepicker插件是一个非常流行的选择工具,它为用户提供了直观、易于使用的日期选择界面。然而,Datepicker默认只支持日期选择,不包含时间选择...

    jQuery日期选择插件jQuery-datepicker.zip

    datepicker 是 jQuery 日期选择插件。在线演示 标签:jQuery

    jquery datepicker 日期控件

    jQuery UI Datepicker是一款基于jQuery库的日期选择插件,它提供了丰富的自定义选项和多种语言支持,包括中文。Datepicker不仅在视觉上呈现出整洁的界面,还提供了一套完整的事件和方法,使得开发者能够轻松地集成到...

    日期选择器:jquery datepicker的使用

    jQuery UI的datepicker是一个轻量级、可自定义的日期选择器插件,它通过简单的API接口可以轻松集成到任何HTML页面中。首先,我们需要确保已经引入了jQuery库和jQuery UI库。这两个库通常可以从官方网站下载或通过CDN...

    jQuery ui Datepicker日期插件

    jquery的日期插件Datepicker,这两天正好研究完了,将研究结果分享下,单独的封装汉化版本,都有注释,好修改也好使用,注意保持images里面图片的名称和路径,red-datepicker.css可以定义日期div的样式,我自己在源...

    jQuery日期选择插件

    - **易用性**:jQuery日期插件通常提供简单的API,易于理解和集成到项目中。 - **跨浏览器兼容**:由于jQuery库的跨浏览器特性,日期插件也能在多种浏览器中运行良好。 - **可扩展性**:通过插件机制,可以轻松添加...

    jqueryui中插件Datepicker控件的使用

    **Datepicker** 是 jQuery UI 提供的一个非常实用的日期选择插件,它可以帮助开发者轻松地在网页上添加日期选择功能。要使用 Datepicker,首先需要确保页面已经加载了 jQuery 和 jQuery UI 的相关文件。 1. **引入...

    jQuery多功能日期时间选择器datepicker.zip

    jQuery的datepicker插件以其丰富的功能和灵活的定制性,成为了开发者们首选的日期时间选择器之一。本篇文章将深入探讨这个名为"jQuery多功能日期时间选择器datepicker"的插件,以及它如何通过与Bootstrap等框架的...

    jQuery UI系列教程之二:datepicker.docx

    jQuery UI Datepicker 是一个强大的日期选择插件,它提供了丰富的自定义选项和键盘快捷键支持,使得在网页上添加日期输入功能变得简单易行。这个插件允许开发者根据需求调整日期显示格式、语言设置,甚至限制用户可...

Global site tag (gtag.js) - Google Analytics