12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- (function($){
- $.extend({
- ms_DatePicker: function (options) {
- var defaults = {
- YearSelector: "#sel_year",
- MonthSelector: "#sel_month",
- DaySelector: "#sel_day",
- FirstText: "请选择",
- FirstValue: ''
- };
- var opts = $.extend({}, defaults, options);
- var $YearSelector = $(opts.YearSelector);
- var $MonthSelector = $(opts.MonthSelector);
- var $DaySelector = $(opts.DaySelector);
- var FirstText = opts.FirstText;
- var FirstValue = opts.FirstValue;
- // 初始化
- var str = "<option value=\"" + FirstValue + "\">" + FirstText + "</option>";
- $YearSelector.html(str);
- $MonthSelector.html(str);
- $DaySelector.html(str);
- // 年份列表
- var yearNow = new Date().getFullYear();
- var resYear = yearNow + 5;
- var yearSel = $YearSelector.attr("rel");
- for (var i = resYear; i >= 2010; i--) {
- var sed = yearSel==i?"selected":"";
- var yearStr = "<option value=\"" + i + "\" " + sed+">" + i + "</option>";
- $YearSelector.append(yearStr);
- }
- // 月份列表
- var monthSel = $MonthSelector.attr("rel");
- for (var i = 1; i <= 12; i++) {
- var sed = monthSel==i?"selected":"";
- var monthStr = "<option value=\"" + i + "\" "+sed+">" + i + "</option>";
- $MonthSelector.append(monthStr);
- }
- // 日列表(仅当选择了年月)
- function BuildDay() {
- if ($YearSelector.val() == 0 || $MonthSelector.val() == 0) {
- // 未选择年份或者月份
- $DaySelector.html(str);
- } else {
- $DaySelector.html(str);
- var year = parseInt($YearSelector.val());
- var month = parseInt($MonthSelector.val());
- var dayCount = 0;
- switch (month) {
- case 1:
- case 3:
- case 5:
- case 7:
- case 8:
- case 10:
- case 12:
- dayCount = 31;
- break;
- case 4:
- case 6:
- case 9:
- case 11:
- dayCount = 30;
- break;
- case 2:
- dayCount = 28;
- if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)) {
- dayCount = 29;
- }
- break;
- default:
- break;
- }
-
- var daySel = $DaySelector.attr("rel");
- for (var i = 1; i <= dayCount; i++) {
- var sed = daySel==i?"selected":"";
- var dayStr = "<option value=\"" + i + "\" "+sed+">" + i + "</option>";
- $DaySelector.append(dayStr);
- }
- }
- }
- $MonthSelector.change(function () {
- BuildDay();
- });
- $YearSelector.change(function () {
- BuildDay();
- });
- if($DaySelector.attr("rel")!=""){
- BuildDay();
- }
- } // End ms_DatePicker
- });
- })(jQuery);
|