这里先给你一个简单的,取日期可以用Request.Form["selYear"].value等 注意这段代码不支持月份判断,比如你可以选择2月31日,完善的如果需要随后写出来 <select id=selYear> <script> for(var i=1900;i<2006;i++) { if(i == 1980) document.write("<option value='" + i + "' selected>" + i + "</option>"); else document.write("<option value='" + i + "'>" + i + "</option>"); } </script> </select><select id=selMonth> <script> for(var i=1;i<=12;i++) { document.write("<option value='" + i + "'>" + i + "</option>"); } </script> </select> <select id=selDay> <script> for(var i=1;i<31;i++) { document.write("<option value='" + i + "'>" + i + "</option>"); } </script> </select>
一段javascript代码,现在比较忙,你可以改下用~ <script language="javascript"> function ChangeYear() { var mYear = RegForm.Ddl_Birth_Year.options[RegForm.Ddl_Birth_Year.selectedIndex].value; var mMonth = RegForm.Ddl_Birth_Month.options[RegForm.Ddl_Birth_Month.selectedIndex].value; var mLastDay = RegForm.Ddl_Birth_Day.options[RegForm.Ddl_Birth_Day.selectedIndex].value; var mDay = 0;
if( mMonth == 2 ) { if( mYear % 400 == 0 ) { mDay = 29; } else { if( ( mYear % 4 == 0 ) && ( mYear % 100 != 0 ) ) { mDay = 29; } else { mDay = 28; } } } else { switch( mMonth ) { case '1': case '3': case '5': case '7': case '8': case '10': case '12': mDay = 31; break; case '4': case '6': case '9': case '11': mDay = 30; } }
注意这段代码不支持月份判断,比如你可以选择2月31日,完善的如果需要随后写出来
<select id=selYear>
<script>
for(var i=1900;i<2006;i++)
{
if(i == 1980)
document.write("<option value='" + i + "' selected>" + i + "</option>");
else
document.write("<option value='" + i + "'>" + i + "</option>");
}
</script>
</select><select id=selMonth>
<script>
for(var i=1;i<=12;i++)
{
document.write("<option value='" + i + "'>" + i + "</option>");
}
</script>
</select>
<select id=selDay>
<script>
for(var i=1;i<31;i++)
{
document.write("<option value='" + i + "'>" + i + "</option>");
}
</script>
</select>
<script language="javascript">
function ChangeYear()
{
var mYear = RegForm.Ddl_Birth_Year.options[RegForm.Ddl_Birth_Year.selectedIndex].value;
var mMonth = RegForm.Ddl_Birth_Month.options[RegForm.Ddl_Birth_Month.selectedIndex].value;
var mLastDay = RegForm.Ddl_Birth_Day.options[RegForm.Ddl_Birth_Day.selectedIndex].value;
var mDay = 0;
if( mMonth == 2 )
{
if( mYear % 400 == 0 )
{
mDay = 29;
}
else
{
if( ( mYear % 4 == 0 ) && ( mYear % 100 != 0 ) )
{
mDay = 29;
}
else
{
mDay = 28;
}
}
}
else
{
switch( mMonth )
{
case '1':
case '3':
case '5':
case '7':
case '8':
case '10':
case '12':
mDay = 31;
break;
case '4':
case '6':
case '9':
case '11':
mDay = 30;
}
}
if( mLastDay > mDay )
mLastDay = mDay;
var lastLength = RegForm.Ddl_Birth_Day.length; while( RegForm.Ddl_Birth_Day.length > mDay )
RegForm.Ddl_Birth_Day.remove(mDay);
while( RegForm.Ddl_Birth_Day.length < mDay )
RegForm.Ddl_Birth_Day.options.add( new Option(RegForm.Ddl_Birth_Day.length+1,RegForm.Ddl_Birth_Day.length+1)); for( var i = 0; i < RegForm.Ddl_Birth_Day.length; i++ )
{
if( RegForm.Ddl_Birth_Day.options[i].value == mLastDay )
{
RegForm.Ddl_Birth_Day.selectedIndex = i;
}
}
}
年和月的 onchange里 调用上面的函数,改一下控件的名称,应该可以的
function chanday()
{
var days=31;
var currentyear; if(document.getElementById('selMonth').value==04||document.getElementById('selMonth').value==06||document.getElementById('selMonth').value==09||document.getElementById('selMonth').value==11)
days=30;
else if(document.getElementById('selMonth').value==02)
{
Nowyear=document.getElementById('selYear').value ;
if((Nowyear%4==0 &&Nowyear%100!=0) || Nowyear%400==0)
days=29;
else
days=28;
} flen=document.getElementById('selDay').length;
if(flen > days)
document.getElementById('selDay').selectedIndex = days - 1;
document.getElementById('selDay').length =days;
for(i=flen+1;i<=days;i++)
{
document.getElementById('selDay').options(i-1).text=i;
document.getElementById('selDay').options(i-1).value=i;
}
document.getElementById('selDate').value = document.getElementById('selYear').value + "/" + document.getElementById('selMonth').value + "/" + document.getElementById('selDay').value;
}
</script>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<input id=selDate type=hidden value="1980/1/1" runat=server >
<select id=selYear onchange="chanday()">
<script>
for(var i=1900;i<2006;i++)
{
if(i == 1980)
document.write("<option value='" + i + "' selected>" + i + "</option>");
else
document.write("<option value='" + i + "'>" + i + "</option>");
}
</script>
</select><select id=selMonth onchange="chanday()">
<script>
for(var i=1;i<=12;i++)
{
document.write("<option value='" + i + "'>" + i + "</option>");
}
</script>
</select>
<select id=selDay onchange="chanday()">
<script>
for(var i=1;i<31;i++)
{
document.write("<option value='" + i + "'>" + i + "</option>");
}
</script>
</select>
<asp:Button id="Button1" style="Z-INDEX: 101; LEFT: 168px; POSITION: absolute; TOP: 192px" runat="server"
Text="Button"></asp:Button>
</form>
</body>
</HTML>
后台
private void Button1_Click(object sender, System.EventArgs e)
{
DateTime dt = DateTime.Parse(Request.Form["selDate"]);
Response.Write(dt.ToString());
}完整代码到这里下载
http://www.cnblogs.com/Files/Truly/DateDropDown.rar