jquery UI Datepicker時間控件的使用及問題解決
本文實例為大家分享了jqueryUI中datepicker的使用,解決與asp.net中的UpdatePanel聯(lián)合使用時的失效問題。
1.jqueryUI的datepicker的使用
-->首先在jqueryUI官網上根據(jù)你的需要下載適合你系統(tǒng)主題的樣式,jqueryUI主題:下載地址;

-->下載后的文件
jquery-ui-1.10.3.custom文件夾;不同的主題的區(qū)別在于它們引用的css不同
默認下載的樣式如下:

其它樣式比如我下載的樣式:

下載的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元素了,原因查看源代碼后發(fā)現(xiàn)是其控件ID發(fā)生了變化,如果控件放在了panel中或者母版中,生成的html控件input ID就會發(fā)生變化,如pnlBaseInfo_txtASN
解決辦法: $("[id$=txtASN]"),其意義就是在于獲得id以txtASN結尾的dom元素
-->完成效果

2.解決與asp.net中的UpdatePanel聯(lián)合使用時的失效問題
問題:運行之后,點擊"查詢",頁面局部刷新,發(fā)現(xiàn)日歷選擇器不出來了
DatePicker在asp.net的UpdatePanel中異步回傳后失效的問題
在頁面第一次加載時可以正常顯示DatePicker控件,但在點擊查詢后,由于異步回傳,DatePicker就失效了。
-->分析UpdatePanel
UpdatePanel在應用中主要用于局部刷新,避免整個頁面的Postback。
UpdatePanel實現(xiàn)局部刷新的核心在于MicrosoftAjaxWebForm.js文件,它的局部刷新過程就是將頁面提交到服務端(包 含ViewState),執(zhí)行服務端代碼后異步將在UpdatePanel內的HTML進行重新呈現(xiàn)。
-->分析jQuery
因為在UpdatePanel局部刷新之后,其中的文本框元素被重寫,而此時整個DOM樹并沒有重新加載,所以jQuery的ready事件并沒有觸 發(fā),所以文本框元素就失去了原有的特效。
-->解決方法
將初始化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"); //改變大小
});
});
大家還可以參考以下文章進行學習:
jquery UI Datepicker時間控件的使用方法(基礎版)
jquery UI Datepicker時間控件的使用方法(加強版)
jquery UI Datepicker時間控件的使用方法(終結版)
以上就是本文的全部內容,希望對大家的學習有所幫助。
相關文章
jquery控制listbox中項的移動并排序的實現(xiàn)代碼
listbox中項的移動并排序的jquery實現(xiàn)代碼,使用jquery與listbox的朋友可以參考下。2010-09-09
jQuery使用zTree插件實現(xiàn)樹形菜單和異步加載
這篇文章主要介紹了jQuery使用zTree插件實現(xiàn)樹形菜單和異步加載的相關方法,感興趣的小伙伴們可以參考一下2016-02-02
基于JQuery實現(xiàn)的圖片自動進行縮放和裁剪處理
頁面加載后,對不合比例的圖片自動進行縮放和裁剪處理,兼容圖像已在緩存或不在緩存的情況,基于JQuery2014-01-01
jquery操作checked屬性以及disabled屬性的多種方法
這篇文章主要介紹了jquery控制checked屬性以及disabled屬性的多種方法,下面只提到checked,其實disabled在jquery里的用法和checked是一模一樣的,需要的朋友可以參考下2014-06-06

