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 相关文章推荐
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
Aug 28 Javascript
javascript实现复选框选中属性
Mar 25 Javascript
JavaScript实现函数返回多个值的方法
Jun 09 Javascript
jQuery动画效果相关方法实例分析
Dec 31 Javascript
详解jQuery简单的表单应用
Dec 16 Javascript
JQuery查找子元素find()和遍历集合each的方法总结
Mar 07 Javascript
详解如何让InstantClick兼容MathJax、百度统计等
Sep 12 Javascript
基于jQuery的$.getScript方法去加载javaScript文档解析
Nov 08 jQuery
VUE-cli3使用 svg-sprite-loader
Oct 20 Javascript
JS获取当前时间的实例代码(昨天、今天、明天)
Nov 13 Javascript
vue-cli3 项目从搭建优化到docker部署的方法
Jan 28 Javascript
80行代码写一个Webpack插件并发布到npm
May 24 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
PHP的FTP学习(一)
2006/10/09 PHP
简单的php缓存类分享     php缓存机制
2014/01/22 PHP
php无限遍历目录示例
2014/02/21 PHP
四种php中webservice实现的简单架构方法及实例
2015/02/03 PHP
浅谈php的优缺点
2015/07/14 PHP
总结对比php中的多种序列化
2016/08/28 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
dotopAlert 提示用户需安装播放器的代码
2012/09/17 Javascript
js 判断一个元素是否在页面中存在
2012/12/27 Javascript
如何使Chrome控制台支持多行js模式——意外发现
2013/06/13 Javascript
Js操作Select大全(取值、设置选中等等)
2013/10/29 Javascript
jquery实现页面常用的返回顶部效果
2016/03/04 Javascript
JavaScript继承学习笔记【新手必看】
2016/05/10 Javascript
Bootstrap零基础入门教程(三)
2016/07/18 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
2016/09/27 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
2017/02/07 Javascript
JavaScript实现树的遍历算法示例【广度优先与深度优先】
2017/10/26 Javascript
vue项目中使用scss的方法步骤
2019/05/16 Javascript
浅谈Three.js截图并下载的大坑
2019/11/01 Javascript
javascript实现贪吃蛇经典游戏
2020/04/10 Javascript
vue实现移动端H5数字键盘组件使用详解
2020/08/25 Javascript
vue+axios 拦截器实现统一token的案例
2020/09/11 Javascript
[00:36]DOTA2上海特级锦标赛 Alliance战队宣传片
2016/03/04 DOTA
Django中的“惰性翻译”方法的相关使用
2015/07/27 Python
Python中Numpy mat的使用详解
2019/05/24 Python
keras读取h5文件load_weights、load代码操作
2020/06/12 Python
python cookie反爬处理的实现
2020/11/01 Python
Marriott中国:万豪国际酒店查询预订
2016/09/02 全球购物
时尚设计师手表:The Watch Cabin
2018/10/06 全球购物
CHARLES & KEITH台湾官网:新加坡时尚品牌
2019/07/30 全球购物
如果重写了对象的equals()方法,需要考虑什么
2014/11/02 面试题
文明倡议书
2015/01/19 职场文书
迎新生欢迎词2015
2015/07/16 职场文书
python疲劳驾驶困倦低头检测功能的实现
2022/04/04 Python
redis 解决库存并发问题实现数量控制
2022/04/08 Redis
Java无向树分析 实现最小高度树
2022/04/09 Javascript