本文实例讲述了jQuery实现日期联动效果的方法。分享给大家供大家参考,具体如下:
实现目标:
两个日期,有下拉框:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156<head> //导入jquery地址 <script src="jquery-1.7.2.min.js" language="JavaScript" type="text/javascript"></script> <script type="text/javascript"> //startYear发生变化 function changeYear(str,isstart) { var pre = "start"; if(isstart == false) { pre = "end"; } var startMonth = $(pre + "Month").value; if(startMonth == "") { var e = $(pre + "Month"); optionClear(e); return; } var n = MonHead[startMonth - 1]; if(startMonth == 2 && IsPinYear($(pre + "Year").value)) { n++; } writeDay(n,pre); } function changeMonth(str,isstart) { var pre = "start"; if(isstart == false) { pre = "end"; } var year = $(pre + "Year").value; if(year == "") { var e = $(pre + "Day"); optionClear(e); return; } var n = MonHead[str - 1]; if(str == 2 && IsPinYear($(pre + "Year"))) { n++; } writeDay(n,pre); } function dateStart() { var defaultStartY = "2011"; var defaultStartM = "1"; var defaultStartD = "14"; var defaultEndY = "2011"; var defaultEndM = "2"; var defaultEndD = "23"; MonHead = [31,28,31,30,31,30,31,31,30,31,30,31]; var prestr = new Array("start","end"); for(var j=0; j<2; j++) { var pre = prestr[j]; //start 年 var y = new Date().getFullYear(); if(pre == "start") { //start初始选中前第10天 var i_index = 0; for(var i=(y-10); i<=y; i++) { $(pre+"Year").options.add(new Option(""+i+"",i)); if(i == defaultStartY) { $(pre+"Year").options[i_index].selected = true; } i_index++; } } else { var i_index =0; for(var i=(y-5); i<=y+5; i++) { $(pre+"Year").options.add(new Option(""+i+"",i)); if(i == defaultEndY) { $(pre+"Year").options[i_index].selected = true; } i_index++; } } //start月 defaultM = (pre == "start" ? defaultStartM : defaultEndM) for(var i = 1; i < 13; i++) { $(pre + "Month").options.add(new Option(""+i+"",i)); if(i == defaultM) { $(pre + "Month").options[i-1].selected = true; } } //start日 var n = MonHead[$(pre + "Month").value]; if(new Date().getMonth == 1 && IsPinYear($(pre + "Year").value)) { n++; } defaultD = (pre == "start" ? defaultStartD : defaultEndD) writeDay(n,pre); $(pre + "Day").options[defaultD-1].selected = true; } } function writeDay(n,pre) { var e = $(pre + "Day"); optionClear(e); for (var i=1; i<(n+1); i++) { e.options.add(new Option(""+i+"",i)); } } function IsPinYear(year) { return (0 == year%4 && (year%100 != 0 || year % 4 == 0)); } function optionClear(e) { for(var i=e.options.length; i>=0; i--) { e.remove(i); } } </script> </head> <body onload="dateStart()"> <p name="selectdate"> 从 <select id="startYear" name="startYear" onchange="changeYear(this.value,true)"> </select> 年 <select id="startMonth" name="startMonth" onchange="changeMonth(this.value,true)"> </select> 月 <select id="startDay" name="startDay"> </select> 日 到 <select id="endYear" name="endYear" onchange="changeYear(this.value,false)"> </select> 年 <select id="endMonth" name="endMonth" onchange="changeMonth(this.value,false)"> </select> 月 <select id="endDay" name="endDay"> </select> 日 </p> </body>
参考了一些代码,终于能实现了~~
更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery form操作技巧汇总》、《jQuery常用插件及用法总结》、《jQuery操作json数据技巧汇总》、《jQuery扩展技巧总结》、《jQuery拖拽特效与技巧总结》、《jQuery表格(table)操作技巧汇总》、《jquery中Ajax用法总结》、《jQuery常见经典特效汇总》、《jQuery动画与特效用法总结》及《jquery选择器用法总结》
希望本文所述对大家jQuery程序设计有所帮助。
最后
以上就是执着黑米最近收集整理的关于jQuery实现日期联动效果实例的全部内容,更多相关jQuery实现日期联动效果实例内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复