![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 站務人員 站長 ![]()
![]() ![]() ![]() |
■顯示日期選單;有文字和下拉式(民國年、月、日)二種。 ★傳入參數,如下: Display_Customer_Birthday => 使用Function呼叫 ProcessMode '' 處理方式,如下。 Para '' 傳入參數,如下。 ┌──────┬──────┬──────────────────┐ │ 方 法 │ProcessMode│Para │ │ │(處理方式) │(傳入參數) │ ├──────┼──────┼──────────────────┤ │ │ Select │(先輸入表單名,後接欲顯示的日期,)│ │ │ │(二者以 "," 作為分隔符號;而日期) │ │ 模式一 │(可選單式) │(以 "/" 作為分隔符號) │ │ │ │ │ ├──────┼──────┼──────────────────┤ │ │ Hold │(輸入欲顯示的日期,以 "/" 作為) │ │ 模式二 │(固定式) │(分隔符號) │ └──────┴──────┴──────────────────┘ ※要輸入表單名的原因是: Javascript 需要表單名,才能做值合理性檢查。 ★模式一,傳入參數為空白時,預設值: 自動指向當年今日(預設統一使用伺服器時間) ★傳出參數如下: 無 ★開啟的資料為: 無 程式碼如下: <% Private Sub Display_Customer_Birthday( ProcessMode, Para ) If ProcessMode = "Hold" and Para <> Empty Then BirthdayArray = split( Para, "/" ) Response.Write " 民國 " & BirthdayArray(0)-1911 & " 年 " & BirthdayArray(1) & " 月 " & BirthdayArray(2) & " 日" Exit Sub End If If ProcessMode = "Select" Then If Instr(1, Para, ",", 1 ) <> 0 Then '' 下面計算字串長度,並取出表單名稱值;要減一,才不會把逗號算下去。 BaseFormName = Left( Para, InStr( 1, Para, ",", 1 )-1 ) '' 下面計算字串長度,並取出日期值;要加二,才不會把逗號算下去。 BirthdayArray = split( Mid(Para, CInt(Len(BaseFormName)+2), Len(BaseFormName) ), "/" ) If UBound(BirthdayArray) = 2 Then '' 取出現在的年月日 Reg_Date = Date '' 如果不用強制型別轉換,字串無法和數值比較,所以選單值會不正確。 Cust_Year = CInt(BirthdayArray(0)) Cust_Month = CInt(BirthdayArray(1)) Cust_Day = CInt(BirthdayArray(2)) Else Response.Write "抱歉,客戶生日發生錯誤,請洽詢網站管理員" Exit Sub End If Else BaseFormName = Para Reg_Date = Date '' 取出現在的年月日 Cust_Year = Year(Reg_Date) '' 再取出現在的年份 Cust_Month = Month(Reg_Date) '' 再取出現在的月份 Cust_Day = Day(Reg_Date) '' 再取出現在的日期 End If Response.Write "民國 <select name=""Cust_Birthday_Y"" onblur=""chkCust_Birthday_Date()"">" For Cout_Year = Year(Reg_Date) - 69 to Year(Reg_Date) '最多顯示七十年 If Cout_Year = Cust_Year Then Response.Write "<option value=""" & Cout_Year & """ selected>" & Cout_Year - 1911 & "</option>" Else Response.Write "<option value=""" & Cout_Year & """>" & Cout_Year - 1911 & "</option>" End If Next Response.Write "</select> 年 <select name=""Cust_Birthday_M"" onblur=""chkCust_Birthday_Date()"">" For Cout_Month = 1 to 12 '' 顯示十二個月 If Cout_Month = Cust_Month Then Response.Write "<option value=""" & Cout_Month & """ selected>" & Cout_Month & "</option>" Else Response.Write "<option value=""" & Cout_Month & """>" & Cout_Month & "</option>" End If Next Response.Write "</select> 月 <select name=""Cust_Birthday_D"" onblur=""chkCust_Birthday_Date()"">" For Cout_Day = 1 to 31 '' 顯示三十一天 If Cout_Day = Cust_Day Then Response.Write "<option value=""" & Cout_Day & """ selected>" & Cout_Day & "</option>" Else Response.Write "<option value=""" & Cout_Day & """>" & Cout_Day & "</option>" End IF Next %> </select> 日 <script language="JavaScript"><!-- function chkCust_Birthday_Date(){ { var chkvalue = ""; if((document.<%=BaseFormName%>.Cust_Birthday_Y.value % 4) != 0) { // 如果餘數不等於零,代表選擇的年不是潤年。 var Cust_Birthday_Feb_Day = "28"; } else { var Cust_Birthday_Feb_Day = "29"; } if((document.<%=BaseFormName%>.Cust_Birthday_M.value==2 ) && (document.<%=BaseFormName%>.Cust_Birthday_D.value > Cust_Birthday_Feb_Day) ){ alert(" 二月只有 "+Cust_Birthday_Feb_Day+" 天!\n\n 請先從日期開始選起!") chkvalue="err"; } if((document.<%=BaseFormName%>.Cust_Birthday_M.value==4 ) && (document.<%=BaseFormName%>.Cust_Birthday_D.value > 30) ){ alert(" 四月只有 30 天!\n\n 請先從日期開始選起!") chkvalue="err"; } if((document.<%=BaseFormName%>.Cust_Birthday_M.value==6 ) && (document.<%=BaseFormName%>.Cust_Birthday_D.value > 30) ){ alert(" 六月只有 30 天!\n\n 請先從日期開始選起!") chkvalue="err"; } if((document.<%=BaseFormName%>.Cust_Birthday_M.value==9 ) && (document.<%=BaseFormName%>.Cust_Birthday_D.value > 30) ){ alert(" 九月只有 30 天!\n\n 請先從日期開始選起!") chkvalue="err"; } if((document.<%=BaseFormName%>.Cust_Birthday_M.value==11 ) && (document.<%=BaseFormName%>.Cust_Birthday_D.value > 30) ){ alert(" 十一月只有 30 天!\n\n 請先從日期開始選起!") chkvalue="err"; } if( chkvalue=="err" ){ document.<%=BaseFormName%>.Cust_Birthday_D.focus() } } } //--></script><% End IF End Sub %> --------------------------------------------------------------------------------
本篇文章發表於2002-03-11 00:00
|