jquery UI Datepicker时间控件的使用及问题解决


Posted in Javascript onApril 28, 2016

本文实例为大家分享了jqueryUI中datepicker的使用,解决与asp.net中的UpdatePanel联合使用时的失效问题。

1.jqueryUI的datepicker的使用

-->首先在jqueryUI官网上根据你的需要下载适合你系统主题的样式,jqueryUI主题:下载地址;

jquery UI Datepicker时间控件的使用及问题解决

-->下载后的文件
jquery-ui-1.10.3.custom文件夹;不同的主题的区别在于它们引用的css不同
默认下载的样式如下:

 jquery UI Datepicker时间控件的使用及问题解决

其它样式比如我下载的样式:

jquery UI Datepicker时间控件的使用及问题解决

下载的jqueryUI中除了css文件夹不同,其它文件均相同

-->页面中的使用datePicker的步骤
(1)引入jquery-ui-1.10.3.custom.min.css样式文件
(2)引入jquery-1.9.1.js和jquery-ui-1.10.3.custom.min.js脚本文件;注意:先引入jquery文件

(3)我的需求是制作一个起始时间和一个终止时间的选择。

代码如下:

<script type="text/javascript">
    $(function () {
      $("#txtStartDate").datepicker({
        dateFormat: "yy-mm-dd",
        changeMonth: true,
        onClose: function (selectedDate) {
          $("#txtEndDate").datepicker("option", "minDate", selectedDate);
        }
      });
      $("#txtEndDate").datepicker({
        dateFormat: "yy-mm-dd",
        changeMonth: true,
        onClose: function (selectedDate) {
          $("#txtStartDate").datepicker("option", "maxDate", selectedDate);
        }
      });
      $("#ui-datepicker-div").css("font-size", "12px"); //改变大小
    });
  </script>
</head>
<body>
  <label for="from">开始时间:</label>
  <input type="text" id="txtStartDate" name="from"/>
  <label for="to">结束时间:</label>
  <input type="text" id="txtEndDate" name="to"/>
</body>

 注:

(1)$("#ui-datepicker-div").css("font-size", "12px"); 用来改变日期控件的大小
(2)dateFormat: "yy-mm-dd",改变日期格式

(3)日期控件为英文版本,加入一段脚本将其汉化

/* Chinese initialisation for the jQuery UI date picker plugin. */
/* Written by Cloudream (cloudream@gmail.com). */
jQuery(function ($) {
  $.datepicker.regional['zh-CN'] = {
    closeText: '关闭',
    prevText: '<上月',
    nextText: '下月>',
    currentText: '今天',
    monthNames: ['一月', '二月', '三月', '四月', '五月', '六月',
        '七月', '八月', '九月', '十月', '十一月', '十二月'],
    monthNamesShort: ['一', '二', '三', '四', '五', '六',
        '七', '八', '九', '十', '十一', '十二'],
    dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
    dayNamesShort: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
    dayNamesMin: ['日', '一', '二', '三', '四', '五', '六'],
    weekHeader: '周',
    dateFormat: 'yy-mm-dd',
    firstDay: 1,
    isRTL: false,
    showMonthAfterYear: true,
    yearSuffix: '年'
  };
  $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
});

(4)对于一些datepicker的属性和方法的详细使用,可以参考其API文档,上面讲的很详细

 -->再分享一招 

 $("[id$=txtASN]")的使用

定义好的asp.net的textbox控件id为txtASN,但是$("#txtASN")却获取不到textbox的dom元素了,原因查看源代码后发现是其控件ID发生了变化,如果控件放在了panel中或者母版中,生成的html控件input ID就会发生变化,如pnlBaseInfo_txtASN
解决办法: $("[id$=txtASN]"),其意义就是在于获得id以txtASN结尾的dom元素

-->完成效果

jquery UI Datepicker时间控件的使用及问题解决

2.解决与asp.net中的UpdatePanel联合使用时的失效问题
问题:运行之后,点击"查询",页面局部刷新,发现日历选择器不出来了
DatePicker在asp.net的UpdatePanel中异步回传后失效的问题
在页面第一次加载时可以正常显示DatePicker控件,但在点击查询后,由于异步回传,DatePicker就失效了。
-->分析UpdatePanel
UpdatePanel在应用中主要用于局部刷新,避免整个页面的Postback。 
UpdatePanel实现局部刷新的核心在于MicrosoftAjaxWebForm.js文件,它的局部刷新过程就是将页面提交到服务端(包 含ViewState),执行服务端代码后异步将在UpdatePanel内的HTML进行重新呈现。 

-->分析jQuery
因为在UpdatePanel局部刷新之后,其中的文本框元素被重写,而此时整个DOM树并没有重新加载,所以jQuery的ready事件并没有触 发,所以文本框元素就失去了原有的特效。
-->解决方法
将初始化DatePicker的代码放在Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(function(evt, args) {});

$(function () {
  Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(function (evt, args) {
    $("[id$=txtStartDate]").datepicker({
      dateFormat: "yy-mm-dd",
      changeMonth: true,
      onClose: function (selectedDate) {
        $("[id$=txtEndDate]").datepicker("option", "minDate", selectedDate);
      }
    });
    $("[id$=txtEndDate]").datepicker({
      dateFormat: "yy-mm-dd",
      changeMonth: true,
      onClose: function (selectedDate) {
        $("[id$=txtStartDate]").datepicker("option", "maxDate", selectedDate);
      }
    });
    $("#ui-datepicker-div").css("font-size", "14px"); //改变大小
  });
});

大家还可以参考以下文章进行学习:

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
JavaScript的面向对象(一)
Nov 09 Javascript
弹出广告特效代码(一个IP只弹出一次)
May 11 Javascript
javascript避免数字计算精度误差的方法详解
Mar 05 Javascript
jQuery+css实现百度百科的页面导航效果
Dec 16 Javascript
JavaScript中创建字典对象(dictionary)实例
Mar 31 Javascript
BootStrapValidator初使用教程详解
Feb 10 Javascript
javascript 网页进度条简单实例
Feb 22 Javascript
js脚本编写简单刷票投票系统
Jun 27 Javascript
在Web关闭页面时发送Ajax请求的实现方法
Mar 07 Javascript
VueCli3.0中集成MockApi的方法示例
Jul 05 Javascript
vue-loader中引入模板预处理器的实现
Sep 04 Javascript
json_decode 索引为数字时自动排序问题解决方法
Mar 28 Javascript
jquery弹出遮掩层效果【附实例代码】
Apr 28 #Javascript
onclick和onblur冲突问题的快速解决方法
Apr 28 #Javascript
如何使用jquery修改css中带有!important的样式属性
Apr 28 #Javascript
JavaScript String 对象常用方法总结
Apr 28 #Javascript
JavaScript Math 对象常用方法总结
Apr 28 #Javascript
非常漂亮的相册集 使用jquery制作相册集
Apr 28 #Javascript
jQuery事件绑定on()与弹窗实现代码
Apr 28 #Javascript
You might like
第二节--PHP5 的对象模型
2006/11/16 PHP
建站常用13种PHP开源CMS比较
2009/08/23 PHP
php 使用array函数实现分页
2015/02/13 PHP
php批量修改表结构实例
2017/05/24 PHP
PHP如何根据文件头检测文件类型实例代码
2018/10/14 PHP
php session_decode函数用法讲解
2019/05/26 PHP
PHP实现发送微博消息功能完整示例
2019/12/04 PHP
jquery tools 系列 scrollable(2)
2009/09/06 Javascript
ajax异步刷新实现更新数据库
2012/12/03 Javascript
jQuery 借助插件Lavalamp实现导航条动态美化效果
2013/09/27 Javascript
JavaScript动态创建div属性和样式示例代码
2013/10/09 Javascript
图片翻转效果具体实现代码
2014/01/09 Javascript
Javascript学习笔记之 对象篇(四) : for in 循环
2014/06/24 Javascript
使用focus方法让光标默认停留在INPUT框
2014/07/29 Javascript
微信小程序 前端源码逻辑和工作流详解
2016/10/08 Javascript
jquery.multiselect多选下拉框实现代码
2016/11/11 Javascript
微信小程序 详解页面跳转与返回并回传数据
2017/02/13 Javascript
javascript过滤数组重复元素的实现方法
2017/05/03 Javascript
JS实现加载时锁定HTML页面元素的方法
2017/06/24 Javascript
[00:12]2018DOTA2亚洲邀请赛 Sccc亮相SOLO赛,今年他又会有什么样的战绩?
2018/04/06 DOTA
[05:03]2018DOTA2亚洲邀请赛主赛事首日回顾
2018/04/04 DOTA
[01:02:00]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第三场 1月24日
2021/03/11 DOTA
深入理解Python中的super()方法
2017/11/20 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
2018/06/19 Python
pandas 选择某几列的方法
2018/07/03 Python
编写多线程Python服务器 最适合基础
2018/09/14 Python
python3.x 生成3维随机数组实例
2019/11/28 Python
python 解决tqdm模块不能单行显示的问题
2020/02/19 Python
css3制作动态进度条以及附加jQuery百分比数字显示
2012/12/13 HTML / CSS
6种非常炫酷的CSS3按钮边框动画特效
2016/03/16 HTML / CSS
HTML5 device access 设备访问详解
2018/05/24 HTML / CSS
KIKO MILANO英国官网:意大利知名化妆品和护肤品品牌
2017/09/25 全球购物
校园演讲稿汇总
2014/05/21 职场文书
2015年出纳年终工作总结
2015/05/14 职场文书
中考百日冲刺决心书
2015/09/22 职场文书
解决flex布局中子项目尺寸不受flex-shrink限制
2022/05/11 HTML / CSS