台灣最大程式設計社群網站
線上人數
434
 
會員總數:245468
討論主題:189226
歡迎您免費加入會員
討論區列表 >> 專欄文章 >> 三層式日期的下拉式選單
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
三層式日期的下拉式選單
價值 : 0 QP  點閱數:1663 回應數:0

樓主

站務人員 站長
門外漢
0 1580
542 9
發送站內信

捐贈 VP 給 站務人員
這是我的做法…有些笨…你可以參考一下…^^
sub make_mbar()
for i=1 to 12
set newopt=document.createElement("option")
newopt.text=cstr(i)
newopt.value=i
member.m.add newopt
next
make_dbar()
end sub

sub chkyear()
dim k
if member.y.value="" then
msgbox "請先輸入出生年份!!"
member.m.selectedindex=0
member.y.focus()
else
make_dbar()
end if
end sub

sub make_dbar()
dim yy

for i=0 to member.d.length-1
member.d.remove member.d.selectedindex
next
select case member.m.value
case 1,3,5,7,8,10,12:
for i=1 to 31
set newopt=document.createElement("option")
newopt.text=cstr(i)
newopt.value=i
member.d.add newopt
next
case 4,6,9,11:
for i=1 to 30
set newopt=document.createElement("option")
newopt.text=cstr(i)
newopt.value=i
member.d.add newopt
next
case 2:
if member.y.value="" then
yy=year(now())
if yy mod 100 = 0 then
if yy mod 4 = 0 then dd=29 else dd=28
else
if yy mod 4 = 0 then dd=29 else dd=28
end if
for i=1 to dd
set newopt=document.createElement("option")
newopt.text=cstr(i)
newopt.value=i
member.d.add newopt
next
else
if (eval(member.y.value)+1911) mod 100 = 0 then
if (eval(member.y.value)+1911) mod 4 = 0 then dd=29 else dd=28
else
if (eval(member.y.value)+1911) mod 4 = 0 then dd=29 else dd=28
end if
for i=1 to dd
set newopt=document.createElement("option")
newopt.text=cstr(i)
newopt.value=i
member.d.add newopt
next
end if
end select
end sub

<form name=member>
<input type=text name="y">年
<select size="1" name="m" onchange=chkyear()></select>月
<select size=1 name="d"></select>日
</form>

==========================================================================
回應者: sabcat

<Html>
<Head>
<Script Language="VBScript">
Sub LoadYear
For i=1900 to Year(Now()) '建立1900年~目前的年份
Set NewOpt=Document.CreateElement("Option")
NewOpt.Text=i
NewOpt.Value=i
Form1.y.Add NewOpt
NewOpt.Selected=True '選取今年
Next
For j=1 To 12 '建立月份
Set NewOpt=Document.CreateElement("Option")
NewOpt.Text=j
NewOpt.Value=j
Form1.m.Add NewOpt
Next
For k=1 to Day(DateSerial(Year(Now()), Month(Now())+1 , 1-1)) '建立日期
Set NewOpt=Document.CreateElement("Option")
NewOpt.Text=k
NewOpt.Value=k
Form1.d.Add NewOpt
Next
Form1.m(Month(Now())-1).Selected=True '選取現在的月份
Form1.d(Day(Now())-1).Selected=True '選取今天的日期
End Sub

Sub GetDate
Years=Form1.y.Value '取得選取的年份為何
Months=Form1.m.Value '取得選取的月份為何
For z=0 to Form1.d.Length-1
Form1.d.Remove Form1.d.SelectedIndex '將日期的下拉式選單清空
Next
For k=1 To Day(DateSerial(Years,Months+1,1-1))
Set NewOpt=Document.CreateElement("Option")
NewOpt.Text=k
NewOpt.Value=k
Form1.d.Add NewOpt
Next
End Sub
</Script>
</Head>
<Body OnLoad="LoadYear">
<Form Name="Form1">
<Select Size="1" Name="y" OnChange="GetDate"></Select>年
<Select Size="1" Name="m" OnChange="GetDate"></Select>月
<Select Size="1" Name="d"></Select>日
</Form>
</Body>
</Html>

本篇文章發表於2002-02-24 00:00
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
目前尚無任何回覆
   

回覆
如要回應,請先登入.