如何实现下拉框的联动?

时间:2022-11-21 18:00:27
有三个下拉框
年月日

根据选择的年和月来决定“日”下拉框有多少天?

如何实现?

6 个解决方案

#1


用JavaScript实现就可以了。。。

就是下拉框中加个onclick事件

#2


能否说得具体一些,最好有代码,谢谢

比如说:我选择2003年2月
这时在“日”下拉框中,显示的只有1-28
而当我选择2003年3月时,在“日”下拉框中,显示的是1-31

#3


程序自己再修一修
比如日期的下拉框加一个事件
月份的下拉框要和年份一样加onchange事件

</HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
function select(){
var inCnt = 28 

// 这里的日数自计算吧,然后把数据参数穿进去就可以

writeComboBox(inCnt); 
}

//-->
</SCRIPT>
<BODY>
<FORM METHOD=POST ACTION="" name = "from1">

<SELECT NAME="sel1" onchange="select()">
<option value="2002">2002</option>
<option value="2003">2003</option>
<option  value="2004">2004</option>
</SELECT>
<SELECT NAME="sel2">
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</SELECT>
<div id="TEMP"></div>

<SCRIPT LANGUAGE="JavaScript">
<!--
function writeComboBox(cnt) {
var strValue = ""; 
strValue = "<select name=sel3>";
for(i=1; i<=cnt; i++) {
strValue = strValue + "<option name=bb value=" + i + ">" + i + "</option>";
}
strValue = strValue + "</select>";
TEMP.innerHTML = strValue;
}
//-->
writeComboBox(); 
</SCRIPT>
</FORM>
</BODY>
</HTML>

#4


ding

#5


<!-- File name:calendar.jsp -->


<!-- 显示任意年、月的日历,可选择不同的年、月。

author:wildfield -->

<%@ page language="java" import="java.util.*" %>

<%! String year;

String month;

%>

<% month=request.getParameter("month");

year =request.getParameter("year");

%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<%@page contentType="text/html; charset=gb2312"%>
<title>日</title>

<script Language="JavaScript">

<!--

function changeMonth()

{

var mm="calendar.jsp?month="+document.sm.elements[0].selectedIndex+"&year="

+<%=year%>;

window.open(mm,"_self");

}

//--></script>

</head>

<%! String days[]; %>

<%

days=new String[42];

for(int i=0;i<42;i++)

{

days[i]="";

}

%>

<%

Calendar thisMonth=Calendar.getInstance();

if(month!=null&&(!month.equals("null")))

thisMonth.set(Calendar.MONTH, Integer.parseInt(month) );

if(year!=null&&(!year.equals("null")))

thisMonth.set(Calendar.YEAR, Integer.parseInt(year) );

year=String.valueOf(thisMonth.get(Calendar.YEAR));

month=String.valueOf(thisMonth.get(Calendar.MONTH));
int day=thisMonth.get(Calendar.DAY_OF_MONTH);

thisMonth.setFirstDayOfWeek(Calendar.SUNDAY);

thisMonth.set(Calendar.DAY_OF_MONTH,1);

int firstIndex=thisMonth.get(Calendar.DAY_OF_WEEK)-1;

int maxIndex=thisMonth.getActualMaximum(Calendar.DAY_OF_MONTH);

for(int i=0;i<maxIndex;i++)

{

days[firstIndex+i]=String.valueOf(i+1);

}

%>

<body background="file:///E:/meng/网页_办公系统/兰州局办公管理信息系统/wwwroot/bgzdh/bback.gif">
<center>
<FORM name="sm" method="post" action="calendar.jsp">
<div align=center>                   

      <b><font color="#FF6666"><%=year%>年  </font></b>                   
                   
           <b><font color="#FF6666"><%= Integer.parseInt(month)+1%>月</font></b>
                      
                        
<table border="0" width="168" height="81">                   
                   
<td>                   
                   
                                      
<tr>                   
                   
<th width="25" height="16" bgcolor="#FFFF00" style="background-color: #FFCCCC"><font color="red">日</font>                   
                   
</th>                   
                   
<th width="25" height="16" bgcolor="#FFFF00" style="background-color: #FFCCCC"><font color="#000080">一</font></th>                
                
<th width="25" height="16" bgcolor="#FFFF00" style="background-color: #FFCCCC"><font color="#000080">二</font></th>                
                
<th width="25" height="16" bgcolor="#FFFF00" style="background-color: #FFCCCC"><font color="#000080">三</font></th>                
                
<th width="25" height="16" bgcolor="#FFFF00" style="background-color: #FFCCCC"><font color="#000080">四</font></th>                
                
<th width="25" height="16" bgcolor="#FFFF00" style="background-color: #FFCCCC"><font color="#000080">五</font></th>                
                
<th width="25" height="16" bgcolor="#FFFF00" style="background-color: #FFCCCC"><font color="#0000FF">六</font></th>                
                
</tr>                
                
<% for(int j=0;j<6;j++) { %>                
                
<tr>                
                
<% for(int i=j*7;i<(j+1)*7;i++) { %>                
                
         
<%if(days[i].equals(day+""))         
    out.println("<td width=\"15%\" height=\"16\" bgcolor=\"#cococo\" valign=\"middle\" align=\"center\" style=\"color: red\" >"+"<font coclor=\"red\">"+days[i]+"</font>"); 
     else            
    out.println("<td width=\"15%\" height=\"16\" bgcolor=\"#cococo\" valign=\"middle\" align=\"center\" style=\"color: green\" >" +"<font coclor=\"#0000FF\">"+days[i]+"</font>");    
     %>             
             
                 
      
                   
</td>                
<% } %>                
                
</tr>                
                
<% } %>                
                
</table>                
                
<table border="0" width="168" height="20">                
                
<tr>                
                
<td width=30%><select name="month" size="1" onchange="changeMonth()" >                
                
<option value="0">一月</option>                
                
<option value="1">二月</option>                
                
<option value="2">三月</option>                
                
<option value="3">四月</option>                
                
<option value="4">五月</option>                
                
<option value="5">六月</option>                
                
<option value="6">七月</option>                
                
<option value="7">八月</option>                
                
<option value="8">九月</option>                
                
<option value="9">十月</option>                
                
<option value="10">十一月</option>                
                
<option value="11">十二月</option>                
                
</select></td>                
                
<td width=28%><input type=text name="year" value=<%=year%> size=4 maxlength                
                
=4></td>                
                
<td>年</td>                
                
<td width=28%><input type=submit value="提交"></td>                
                
</tr>                
                
</table>                
                
</FORM>                
                
<script Language="JavaScript">                
                
<!--                
                
document.sm.month.options.selectedIndex=<%=month%>;                
                
                
//-->                
                
</script>                
</center>                
</body>                
                
</html>                

#6


谢谢

#1


用JavaScript实现就可以了。。。

就是下拉框中加个onclick事件

#2


能否说得具体一些,最好有代码,谢谢

比如说:我选择2003年2月
这时在“日”下拉框中,显示的只有1-28
而当我选择2003年3月时,在“日”下拉框中,显示的是1-31

#3


程序自己再修一修
比如日期的下拉框加一个事件
月份的下拉框要和年份一样加onchange事件

</HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
function select(){
var inCnt = 28 

// 这里的日数自计算吧,然后把数据参数穿进去就可以

writeComboBox(inCnt); 
}

//-->
</SCRIPT>
<BODY>
<FORM METHOD=POST ACTION="" name = "from1">

<SELECT NAME="sel1" onchange="select()">
<option value="2002">2002</option>
<option value="2003">2003</option>
<option  value="2004">2004</option>
</SELECT>
<SELECT NAME="sel2">
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</SELECT>
<div id="TEMP"></div>

<SCRIPT LANGUAGE="JavaScript">
<!--
function writeComboBox(cnt) {
var strValue = ""; 
strValue = "<select name=sel3>";
for(i=1; i<=cnt; i++) {
strValue = strValue + "<option name=bb value=" + i + ">" + i + "</option>";
}
strValue = strValue + "</select>";
TEMP.innerHTML = strValue;
}
//-->
writeComboBox(); 
</SCRIPT>
</FORM>
</BODY>
</HTML>

#4


ding

#5


<!-- File name:calendar.jsp -->


<!-- 显示任意年、月的日历,可选择不同的年、月。

author:wildfield -->

<%@ page language="java" import="java.util.*" %>

<%! String year;

String month;

%>

<% month=request.getParameter("month");

year =request.getParameter("year");

%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<%@page contentType="text/html; charset=gb2312"%>
<title>日</title>

<script Language="JavaScript">

<!--

function changeMonth()

{

var mm="calendar.jsp?month="+document.sm.elements[0].selectedIndex+"&year="

+<%=year%>;

window.open(mm,"_self");

}

//--></script>

</head>

<%! String days[]; %>

<%

days=new String[42];

for(int i=0;i<42;i++)

{

days[i]="";

}

%>

<%

Calendar thisMonth=Calendar.getInstance();

if(month!=null&&(!month.equals("null")))

thisMonth.set(Calendar.MONTH, Integer.parseInt(month) );

if(year!=null&&(!year.equals("null")))

thisMonth.set(Calendar.YEAR, Integer.parseInt(year) );

year=String.valueOf(thisMonth.get(Calendar.YEAR));

month=String.valueOf(thisMonth.get(Calendar.MONTH));
int day=thisMonth.get(Calendar.DAY_OF_MONTH);

thisMonth.setFirstDayOfWeek(Calendar.SUNDAY);

thisMonth.set(Calendar.DAY_OF_MONTH,1);

int firstIndex=thisMonth.get(Calendar.DAY_OF_WEEK)-1;

int maxIndex=thisMonth.getActualMaximum(Calendar.DAY_OF_MONTH);

for(int i=0;i<maxIndex;i++)

{

days[firstIndex+i]=String.valueOf(i+1);

}

%>

<body background="file:///E:/meng/网页_办公系统/兰州局办公管理信息系统/wwwroot/bgzdh/bback.gif">
<center>
<FORM name="sm" method="post" action="calendar.jsp">
<div align=center>                   

      <b><font color="#FF6666"><%=year%>年  </font></b>                   
                   
           <b><font color="#FF6666"><%= Integer.parseInt(month)+1%>月</font></b>
                      
                        
<table border="0" width="168" height="81">                   
                   
<td>                   
                   
                                      
<tr>                   
                   
<th width="25" height="16" bgcolor="#FFFF00" style="background-color: #FFCCCC"><font color="red">日</font>                   
                   
</th>                   
                   
<th width="25" height="16" bgcolor="#FFFF00" style="background-color: #FFCCCC"><font color="#000080">一</font></th>                
                
<th width="25" height="16" bgcolor="#FFFF00" style="background-color: #FFCCCC"><font color="#000080">二</font></th>                
                
<th width="25" height="16" bgcolor="#FFFF00" style="background-color: #FFCCCC"><font color="#000080">三</font></th>                
                
<th width="25" height="16" bgcolor="#FFFF00" style="background-color: #FFCCCC"><font color="#000080">四</font></th>                
                
<th width="25" height="16" bgcolor="#FFFF00" style="background-color: #FFCCCC"><font color="#000080">五</font></th>                
                
<th width="25" height="16" bgcolor="#FFFF00" style="background-color: #FFCCCC"><font color="#0000FF">六</font></th>                
                
</tr>                
                
<% for(int j=0;j<6;j++) { %>                
                
<tr>                
                
<% for(int i=j*7;i<(j+1)*7;i++) { %>                
                
         
<%if(days[i].equals(day+""))         
    out.println("<td width=\"15%\" height=\"16\" bgcolor=\"#cococo\" valign=\"middle\" align=\"center\" style=\"color: red\" >"+"<font coclor=\"red\">"+days[i]+"</font>"); 
     else            
    out.println("<td width=\"15%\" height=\"16\" bgcolor=\"#cococo\" valign=\"middle\" align=\"center\" style=\"color: green\" >" +"<font coclor=\"#0000FF\">"+days[i]+"</font>");    
     %>             
             
                 
      
                   
</td>                
<% } %>                
                
</tr>                
                
<% } %>                
                
</table>                
                
<table border="0" width="168" height="20">                
                
<tr>                
                
<td width=30%><select name="month" size="1" onchange="changeMonth()" >                
                
<option value="0">一月</option>                
                
<option value="1">二月</option>                
                
<option value="2">三月</option>                
                
<option value="3">四月</option>                
                
<option value="4">五月</option>                
                
<option value="5">六月</option>                
                
<option value="6">七月</option>                
                
<option value="7">八月</option>                
                
<option value="8">九月</option>                
                
<option value="9">十月</option>                
                
<option value="10">十一月</option>                
                
<option value="11">十二月</option>                
                
</select></td>                
                
<td width=28%><input type=text name="year" value=<%=year%> size=4 maxlength                
                
=4></td>                
                
<td>年</td>                
                
<td width=28%><input type=submit value="提交"></td>                
                
</tr>                
                
</table>                
                
</FORM>                
                
<script Language="JavaScript">                
                
<!--                
                
document.sm.month.options.selectedIndex=<%=month%>;                
                
                
//-->                
                
</script>                
</center>                
</body>                
                
</html>                

#6


谢谢