zl程序教程

您现在的位置是:首页 >  后端

当前栏目

js出生日期年月日级联菜单示例代码

JS代码 示例 菜单 级联 年月日 出生日期
2023-06-13 09:15:15 时间

现在世界通用的公历(阳历)也经过一个长期演变的过程。我们先看,公历每个月的日数是固定的:"七前单大,八后双大"。也就是说,一、三、五、七、八、十、腊月(十二月)是31天,四、六、九、十一月是30天,只有二月,平年28天,闰年29天。

复制代码代码如下:

<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="WebForm1.aspx.cs"Inherits="WebApplication1.WebForm1"%>

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
   <title></title>
</head>
<body>
   <formid="form1"runat="server">
   <div>
  <selectname=YYYYid="YYYY"onchange="YYYYMM(this.value)">
       <optionvalue="">选择年</option>
   </select>
   <selectname=MMid="MM"onchange="MMDD(this.value)">
       <optionvalue="">选择月</option>
   </select>
   <selectname=DDid="DD">
       <optionvalue="">选择日</option>
   </select>
   </div>
   <asp:HiddenFieldID="hfValue"runat="server"/>
   <asp:ButtonID="btnSave"runat="server"Text="保存"onclick="btnSave_Click"/>
   </form>
</body>
</html>
<scriptlanguage="JavaScript">
<!--

   functiongetValue(){
       varyear=document.getElementById("YYYY").options[document.getElementById("YYYY").selectedIndex].value;
       varmonth=document.getElementById("MM").options[document.getElementById("MM").selectedIndex].value;
       varday=document.getElementById("DD").options[document.getElementById("DD").selectedIndex].value;
       document.getElementById("hfValue").value=year+"-"+month+"-"+day;
   }

window.onload=function(){
   strYYYY=document.form1.YYYY.outerHTML;

   strMM=document.form1.MM.outerHTML;
   strDD=document.form1.DD.outerHTML;
   MonHead=[31,28,31,30,31,30,31,31,30,31,30,31];
   //先给年下拉框赋内容
   vary=newDate().getFullYear();
   varstr=strYYYY.substring(0,strYYYY.length-9);

   for(vari=(y-80);i<(y+2);i++)//以今年为准,前30年,后30年
   {
       str+="<optionvalue=""+i+"">"+i+"年"+"</option>\r\n";
   }
   document.form1.YYYY.outerHTML=str+"</select>";
   //赋月份的下拉框
   varstr=strMM.substring(0,strMM.length-9);
   for(vari=1;i<13;i++){
       str+="<optionvalue=""+i+"">"+i+"月"+"</option>\r\n";
   }
   document.form1.MM.outerHTML=str+"</select>";
   document.form1.YYYY.value=y;
   document.form1.MM.value=newDate().getMonth()+1;
   varn=MonHead[newDate().getMonth()];
   if(newDate().getMonth()==1&&IsPinYear(YYYYvalue))n++;
   writeDay(n);//赋日期下拉框
   document.form1.DD.value=newDate().getDate();
}
functionYYYYMM(str)//年发生变化时日期发生变化(主要是判断闰平年)
{
   varMMvalue=document.form1.MM.options[document.form1.MM.selectedIndex].value;
   if(MMvalue==""){
       DD.outerHTML=strDD;
       return;
   }
   varn=MonHead[MMvalue-1];
   if(MMvalue==2&&IsPinYear(str))n++;
   writeDay(n)
}
functionMMDD(str)//月发生变化时日期联动
{
   varYYYYvalue=document.form1.YYYY.options[document.form1.YYYY.selectedIndex].value;
   if(str==""){
       DD.outerHTML=strDD;
       return;
   }
   varn=MonHead[str-1];
   if(str==2&&IsPinYear(YYYYvalue))n++;
   writeDay(n)
}
functionwriteDay(n)//据条件写日期的下拉框
{
   vars=strDD.substring(0,strDD.length-9);
   for(vari=1;i<(n+1);i++)s+="<optionvalue=""+i+"">"+i+"日"+

"</option>\r\n";
   document.form1.DD.outerHTML=s+"</select>";

}
functionIsPinYear(year)//判断是否闰平年
{
   return(0==year%4&&(year%100!=0||year%400==0))
}
//-->
</script>


.aspx.cs
复制代码代码如下:

usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Web;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;

namespaceWebApplication1
{
   publicpartialclassWebForm1:System.Web.UI.Page
   {
       protectedvoidPage_Load(objectsender,EventArgse)
       {
           btnSave.Attributes.Add("onclick","getValue()");
       }

       protectedvoidbtnSave_Click(objectsender,EventArgse)
       {
           Response.Write(hfValue.Value);
       }
   }
}