您的位置:无忧脚本
» 小虫子的世界
» 日志
菜鸟求助一个关于日期选择的问题!
上一篇 /
下一篇 2006-12-15 20:49:54
/ 个人分类:天天向上
查看( 646 ) /
评论( 2 )
下面是一个日期选择的select,好象是自动 selected="selected" 在当前时间上。
:G0gA3U-n7T4n&N0
我是从别人的页子里查看源码直接拷贝的,好象缺点什么,自己又搞不明白,所以不能用!
无忧脚本@@{k$eFL$j6d9Lf
希望大大们能帮助一下,感谢!
CODE:
<script language="javascript" type="text/javascript">无忧脚本)i@8H$\;hD
<!--
.?{
E+y t;R"z e&A-e/P0
无忧脚本0Br2bN~*oTx9u&x
function check_date(day_dropdown_name, month_dropdown_name, year_dropdown_name) {无忧脚本 Ail}?L?b'A}&UN
var f = document.forms[0];无忧脚本q~@0n(Gl
var day_dropdown = null;无忧脚本2pV!K
b4y
var month_dropdown = null;无忧脚本c!ha"xf*FRY&L%[N1R
var year_dropdown = null;无忧脚本p%? WWJ3z
C
无忧脚本Wy&kCoH,z*I{
for (var i = 0; i < f.length; i++) {
,e$Z%c8x,ox/UNg0
if (f[i].id.lastIndexOf("_" + day_dropdown_name) != -1) {无忧脚本"^3GqU0O Z&`KyN#K]
day_dropdown = f[i];
*Ix5d*v-D
WZ0
}无忧脚本5P(f|(h~(E%Av _
else if (f[i].id.lastIndexOf("_" + month_dropdown_name) != -1) {
GK3N{)c0A m0
month_dropdown = f[i];
6]^2IA7fUI1kr0
}无忧脚本+}2`"OQ*uw[4gg
else if (f[i].id.lastIndexOf("_" + year_dropdown_name) != -1) {无忧脚本c8O{J!a{K G
year_dropdown = f[i];无忧脚本'i+C'e(L1qIr2a)F*^
}无忧脚本%W&f5g)dw'ub
}
2d8S/O6Dy*j#Y_Z"|"P*Wb B0
无忧脚本!W6k-FO L-{
var date = new Date(year_dropdown.value, month_dropdown.value - 1, day_dropdown.value);
$F](_/E*q6C0
无忧脚本8p:|&P|!L:P;l6f
for (var i = 1; date.getMonth() != (month_dropdown.value - 1); i++) {
ONz8M~"W%Qn
s0
date = new Date(year_dropdown.value, month_dropdown.value - 1, day_dropdown.value - i);无忧脚本.~;l"IN6Zv[
}
'atYeA0
无忧脚本5Vb
`OT:f0jz
day_dropdown.value = date.getDate();
w%Aixb
N0
}
ANRz7|L8C0
F2T'CS5X0
// -->
V7l:P[0p8b g:W0
</script>
-D;m#M.F6X'`0
无忧脚本U
Qe\*}+M]`KW5aG
<select name="ctl00$cphMain$StartYear" id="ctl00_cphMain_StartYear" onchange="check_date('StartDay','StartMonth','StartYear');">无忧脚本p.s^v7lZ
<option value="2004">2004</option>无忧脚本q$s%T.Kb5M:}
<option value="2005">2005</option>无忧脚本z,?*V&F@@p-G5g
<option selected="selected" value="2006">2006</option>
gs.qzrd)Z0
<option value="2007">2007</option>
$Z4hd`*Nd hx I?0
<option value="2008">2008</option>
#edR
D5XL0
<option value="2009">2009</option>无忧脚本N^eX qk!G
<option value="2010">2010</option>无忧脚本8[xv@.h&s{!d$tz Y\
<option value="2011">2011</option>
J~u.E/GkZ7L0
<option value="2012">2012</option>
0S(TC.`IYu#e8a7e'df0
<option value="2013">2013</option>
#e&P~4J} h;N0
<option value="2014">2014</option>无忧脚本%Z]s SN&S&N
<option value="2015">2015</option>
6p_.v@x:YLNX x0
<option value="2016">2016</option>
%bTR3y|0
<option value="2017">2017</option>无忧脚本Ndq Hw5q*_
无忧脚本'?k$U.}M
</select>
s)?!a8Y-r_:z0
<select name="ctl00$cphMain$StartMonth" id="ctl00_cphMain_StartMonth" onchange="check_date('StartDay','StartMonth','StartYear');">
hL2T8Wtg2Qcy}f%U0
<option value="1">1月</option>
NRwW*lA~;[0
<option value="2">2月</option>
h[ j*Wl1tP0
<option value="3">3月</option>
/^5cE"_$~g-?
s$Zz0
<option value="4">4月</option>无忧脚本o+T&L#x$P6[/s,y
<option value="5">5月</option>
~0cA d(oBiZ `y0
<option value="6">6月</option>
Rr'D IN*gb0
<option value="7">7月</option>无忧脚本;jVV"]_B_SD
<option value="8">8月</option>
J Az\f5A0
<option value="9">9月</option>无忧脚本JI;Ix`4@
v7~,c
<option value="10">10月</option>无忧脚本/d6B$G%M wR#wT-e6?
<option value="11">11月</option>
md"r,@gfCV0
<option selected="selected" value="12">12月</option>无忧脚本D1d1O;WZR}oJ
无忧脚本FQ4V(C \
</select>无忧脚本+Qh#KP#q?(_
Ju
<select name="ctl00$cphMain$StartDay" id="ctl00_cphMain_StartDay" onchange="check_date('StartDay','StartMonth','StartYear');">
FM"x_R8^,Y0
<option value="1">1</option>无忧脚本DC4Q
qln
<option value="2">2</option>
LPC2\r0
<option value="3">3</option>
-X-H M9m c-E/g0
<option value="4">4</option>无忧脚本3[p^h(R2di6Qk
<option selected="selected" value="5">5</option>无忧脚本 pL0OI]K(@
<option value="6">6</option>
!Y*~5JS g
R;Vn%c[0
<option value="7">7</option>无忧脚本5sUB8S
C
<option value="8">8</option>无忧脚本Z N
I.dK.Cm7g
<option value="9">9</option>无忧脚本z6e2@wh*@.kNh
<option value="10">10</option>
G ]!@
K1x.e+G0
<option value="11">11</option>
4Fjm0p+AP&g/_\0
<option value="12">12</option>无忧脚本 _+Z5Hw+DUi
<option value="13">13</option>
9^2DJz:Ld4Uf#R0
<option value="14">14</option>无忧脚本;mu3V}]
<option value="15">15</option>
J| v)f\/j0
<option value="16">16</option>无忧脚本&}l$O-~ r Og.m)v
<option value="17">17</option>无忧脚本;ED5mqeS~:p2X
<option value="18">18</option>
%{~v5pl(z,@?~`'~R0
<option value="19">19</option>无忧脚本yuT6b4VR;I)c
<option value="20">20</option>无忧脚本Zur$]Bv
<option value="21">21</option>无忧脚本F{Ep0P,B&z1[bA1h
<option value="22">22</option>
p0rc&C&I-\R
{7XI7t0
<option value="23">23</option>无忧脚本v;^ An3k ?CS@:T
<option value="24">24</option>
5R,b-_U&O#xi0
<option value="25">25</option>无忧脚本,aug{/y-gW[
<option value="26">26</option>无忧脚本
M2yf2NLf*W~
<option value="27">27</option>无忧脚本8VTM{$Q%K9cq9^n5C]
<option value="28">28</option>无忧脚本fF qw6Bz)a
<option value="29">29</option>无忧脚本2k/}Kaif)f
e~
<option value="30">30</option>无忧脚本b[ sI3g
\"F
<option value="31">31</option>无忧脚本j.?#yT4G:{LN
i qE!a
q_i/g5F0
</select>[
本帖最后由 myhome 于 2006-12-15 21:44 编辑 ]
论坛模式
推荐
收藏
分享给好友
推荐到圈子
管理
TAG:
-
biyuan
发布于2006-12-15 21:17:02
-
泣红亭斑竹曾写过一个日期选择类,我稍微扩展了一下:
CODE:
<select id="selYear"></select>年<select id="selMonth"></select>月<select id="selDay"></select>日<select id="selHours"></select>点
<script language="JavaScript">
function DateSelector(selYear,selMonth,selDay,selHours){
this.selYear = selYear;
this.selMonth = selMonth;
this.selDay = selDay;
this.selHours = selHours;
this.selYear.Group = this;
this.selMonth.Group = this;
// 给年份、月份下拉菜单添加处理onchange事件的函数
if(window.document.all != null){ // IE
this.selYear.attachEvent("onchange", DateSelector.Onchange);
this.selMonth.attachEvent("onchange", DateSelector.Onchange);
}
else{ // Firefox
this.selYear.addEventListener("change", DateSelector.Onchange, false);
this.selMonth.addEventListener("change", DateSelector.Onchange, false);
}
if(arguments.length == 4){ // 如果传入参数个数为4,最后一个参数必须为Date对象
this.InitSelector(arguments[3].getFullYear(), arguments[3].getMonth() + 1, arguments[3].getDate());
}
else{
if(arguments.length == 6){ // 如果传入参数个数为6,最后三个参数必须为初始的年月日数值
this.InitSelector(arguments[3], arguments[4], arguments[5]);
}
else{ // 默认使用当前日期
var dt = new Date();
this.InitSelector(dt.getFullYear(), dt.getMonth() + 1, dt.getDate() , dt.getHours());
}
}
}
// 增加一个最大年份的属性
DateSelector.prototype.MinYear = 2006;
// 增加一个最大年份的属性
DateSelector.prototype.MaxYear = (new Date()).getFullYear();
// 初始化年份
DateSelector.prototype.InitYearSelect = function(){
// 循环添加OPION元素到年份select对象中
for(var i = this.MaxYear; i >= this.MinYear; i--){
// 新建一个OPTION对象
var op = window.document.createElement("OPTION");
// 设置OPTION对象的值
op.value = i;
// 设置OPTION对象的内容
op.innerHTML = i;
// 添加到年份select对象
this.selYear.appendChild(op);
}
}
// 初始化月份
DateSelector.prototype.InitMonthSelect = function(){
// 循环添加OPION元素到月份select对象中
for(var i = 1 ; i < 13 ; i ++){
// 新建一个OPTION对象
var op = window.document.createElement("OPTION");
// 设置OPTION对象的值
op.value = i;
// 设置OPTION对象的内容
op.innerHTML = i;
// 添加到月份select对象
this.selMonth.appendChild(op);
}
}
// 初始化小时
DateSelector.prototype.InitHoursSelect = function(){
// 循环添加OPTION元素到小时select对象中
for(var i = 0 ; i < 24 ; i ++){
var op = window.document.createElement("OPTION");
op.value = i;
op.innerHTML = i;
this.selHours.appendChild(op);
}
}
// 根据年份与月份获取当月的天数
DateSelector.DaysInMonth = function(year, month){
var date = new Date(year, month, 0);
return date.getDate();
}
// 初始化天数
DateSelector.prototype.InitDaySelect = function(){
// 使用parseInt函数获取当前的年份和月份
var year = parseInt(this.selYear.value);
var month = parseInt(this.selMonth.value);
// 获取当月的天数
var daysInMonth = DateSelector.DaysInMonth(year, month);
// 清空原有的选项
this.selDay.options.length = 0;
// 循环添加OPION元素到天数select对象中
for(var i = 1; i <= daysInMonth ; i++){
// 新建一个OPTION对象
var op = window.document.createElement("OPTION");
// 设置OPTION对象的值
op.value = i;
// 设置OPTION对象的内容
op.innerHTML = i;
// 添加到天数select对象
this.selDay.appendChild(op);
}
}
// 处理年份和月份onchange事件的方法,它获取事件来源对象(即selYear或selMonth)
// 并调用它的Group对象(即DateSelector实例,请见构造函数)提供的InitDaySelect方法重新初始化天数
// 参数e为event对象
DateSelector.Onchange = function(e){
var selector = window.document.all != null ? e.srcElement : e.target;
selector.Group.InitDaySelect();
}
// 根据参数初始化下拉菜单选项
DateSelector.prototype.InitSelector = function(year,month,day,hours){
// 由于外部是可以调用这个方法,因此我们在这里也要将selYear和selMonth的选项清空掉
// 另外因为InitDaySelect方法已经有清空天数下拉菜单,因此这里就不用重复工作了
this.selYear.options.length = 0;
this.selMonth.options.length = 0;
this.selHours.options.length = 0;
// 初始化年、月、小时
this.InitYearSelect();
this.InitMonthSelect();
this.InitHoursSelect();
// 设置年、月初始值
this.selYear.selectedIndex = this.MaxYear - year;
this.selMonth.selectedIndex = month - 1;
this.selHours.selectedIndex = hours;
// 初始化天数
this.InitDaySelect();
// 设置天数初始值
this.selDay.selectedIndex = day - 1;
}
var selYear = window.document.getElementById("selYear");
var selMonth = window.document.getElementById("selMonth");
var selDay = window.document.getElementById("selDay");
var selHours = window.document.getElementById("selHours");
new DateSelector(selYear,selMonth,selDay,selHours,new Date());
</script>
-
myhome
发布于2006-12-15 21:36:50
-
biyuan 斑竹好人啊,感谢!
oXtD#u%|sg无忧脚本,无忧,脚本,JavaScript,JS,HTML,DHTML,CSS,XML,XSL无忧脚本$]@%mOn}zN9S
原先苦于对JS搞不懂,只好用ASP这样苯搞:
;n4b!E/BM-//体验编写HTML代码的乐趣 - 51JS.COM无忧脚本4@o:UA/mM
o_&Oo
<%
U6jBx_?~}V-//体验编写HTML代码的乐趣 - 51JS.COMdim i,kwww.51js.com3D%fB7r#~)th!e
k=2018无忧脚本 S-uw&Yn
for i=2005 to kwww.51js.com#u#Mg-aR-^
if i=year(now()) then无忧脚本-//体验编写HTML代码的乐趣 - 51JS.COM6J#V5Av%~\[ t/Thp
Response.Write("<option selected=""selected"" value="""&i&""">"&i&"</option>"&chr(13)&chr(10))!^)SUXK]#WDg
else-//体验编写HTML代码的乐趣 - 51JS.COM8fz Jc@
m
Response.Write("<option value="""&i&""">"&i&"</option>"&chr(13)&chr(10))
M!lc}'V
@
wIf
yN无忧脚本end if
1W%b&R6p6v3x:dnext
?8^0es
YZRlwww.51js.com%>
J7^'Yis4V
CR'f无忧脚本无忧脚本,无忧,脚本,JavaScript,JS,HTML,DHTML,CSS,XML,XSL(J#ur-e'S-x T!O
现在好了,看来还得用心来学JS啊,不过能力有限,只能慢慢来了,再次感谢!