关于作者

菜鸟求助一个关于日期选择的问题!

上一篇 / 下一篇  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+yt;R"z e&A-e/P0 无忧脚本0B r2bN~*oTx9u&x
function check_date(day_dropdown_name, month_dropdown_name, year_dropdown_name) {无忧脚本 Ai l}?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) {无忧脚本"^3GqU0OZ&`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[4g g
                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-FOL-{
        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"I N6Z v[
        }
'atYeA0 无忧脚本5Vb `OT:f0jz
        day_dropdown.value = date.getDate();
w%Aixb N0 }
ANRz7|L8C0
F2T'CS5X0 // -->
V7l:P[0p8bg:W0 </script>
-D;m#M.F6X'`0 无忧脚本U Qe\*}+M]`KW5a G
                        <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 hxI?0         <option value="2008">2008</option>
#edR D5XL0         <option value="2009">2009</option>无忧脚本N^ e X 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:YLNXx0         <option value="2016">2016</option>
%bTR3y|0         <option value="2017">2017</option>无忧脚本NdqHw5q*_
无忧脚本'?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'DIN*g b0         <option value="7">7月</option>无忧脚本;jVV"]_B_SD
        <option value="8">8月</option>
JAz\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 ql n
        <option value="2">2</option>
LP C2\r0         <option value="3">3</option>
-X-HM9m 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*~5JSg 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*@.k Nh
        <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>无忧脚本;ED5mq eS~: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>无忧脚本fFqw6Bz)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

iqE!a q_i/g5F0 </select>
[ 本帖最后由 myhome 于 2006-12-15 21:44 编辑 ]

TAG:

biyuan老矣 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/B M-//体验编写HTML代码的乐趣 - 51JS.COM无忧脚本4@o:U A/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啊,不过能力有限,只能慢慢来了,再次感谢!
我来说两句

(可选)