<script>
/**
* getDay 返回星期(星期天=0)
* @param
*  y 年
*  m 月
*  d 日
* 假定传入的日期合法
* 计算范围:1752-9-14以后
*/
function getDay(y,m,d) {
  y = Number(y);
  m = Number(m);
  d = Number(d);
  if(m==1 || m==2) {
    m += 12;
    y--;
  }
  with(Math)
    var t = d+2*m+floor(3*(m+1)/5)+y+floor(y/4)-floor(y/100)+floor(y/400);
  return (t+1)%7;
}
function getDate(y,m) {
  y = Number(y);
  m = Number(m);
  var a = getDay(y,m+1,1);
  var b = getDay(y,m,28);
  if(a<b) a += 7;
  return 27+a-b;
}
//alert(getDay(2003,8,9));
</script><select id=I_Year onChange="seleDate('year')">
</select>年
<select id=I_Mon onChange="seleDate('mon')">
</select>月
<select id=I_Date onChange="seleDate('date')">
</select>日
<span id="datebox">date</span><script>
function genYear(sele,year,length) {
  var d = new Date();
  for(i=0;i<length;i++) {
    sele.options[i] = new Option(i+year,i+year)
    if(i+year == d.getYear())
      n = i;
  }
  sele.options.length = length;
  sele.options[n].selected = true;
}function genMon(sele,year) {
  var d = new Date();
  for(i=0;i<12;i++) {
    sele.options[i] = new Option(i+1,i+1)
    if(i == d.getMonth())
      n = i;
  }
  sele.options.length = 12;
  sele.options[n].selected = true;
}function genDate(sele,year,month) {
  var d = new Date(year,month,0);
  var length = getDate(year,month);
  d = new Date();
  for(i=0;i<=length;i++) {
    sele.options[i] = new Option(i+1,i+1)
    if(i+1 == d.getDate())
      n = i;
  }
  sele.options.length = length;
  sele.options[n].selected = true;
}
var d = new Date();
genYear(I_Year,1993,20);
genMon(I_Mon,d.getYear());
genDate(I_Date,d.getYear(),d.getMonth()+1);dayChar = new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
function seleDate(mode) {
  switch(mode) {
    case "year":
      genDate(I_Date, I_Year.value, I_Mon.value);
      break;
    case "mon":
      genDate(I_Date, I_Year.value, I_Mon.value);
      break;
    case "date":
      alert(I_Year.value+"-"+I_Mon.value+"-"+I_Date.value+dayChar[getDay(I_Year.value,I_Mon.value,I_Date.value)]);
  }
}</SCRIPT>

解决方案 »

  1.   

    谢谢xuzuning(唠叨),可是我的情况不太一样。我的数据是从表里取的。例如:我要选择2002年某个部门的在职人员。第一个<select name="year">显示所有年份。<select name="department">和<select name="clerk">一开始并不显示数据。通过选择年份<select name="department">显示那一年的所有部门,<select name="clerk">则显示当前所显示的那各部门的所有人员。随后又可通过<select name="department">来调整<select name="clerk">里的数据,当然那数据也要满足年份的条件。
      

  2.   

    <%@ page contentType="text/html; charset=GBK" %>
    <%@ page import="java.sql.*"%>
    <%@ page import="java.lang.*"%>
    <%@ page import="java.util.*"%>
    <jsp:useBean id="dbconn" scope="page" class="htgl.DBConn" />
    <html>
    <head>
    <title>添加菜单</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <style>
    table,td{font-size:9pt;font-family:arial;}
    .input{BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM-STYLE: none}
    .input1{BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #6699cc; BORDER-BOTTOM-STYLE: none}
    .outdiv{border-right:1px solid buttonshadow;border-left:1px solid buttonhighlight;border-bottom:1px solid buttonshadow;border-top:1px solid buttonhighlight}
    .text0{font-size:10pt;color:#0000cc}
    </style></head>
    <%
    Connection conn = null;
    ResultSet rs = null;
    Statement stmt = null;
    String  cs1 = "",ps1="";
    String  cs2 = "",ps2="";
    String  wd1 = "",wl1="";
    String  wd2 = "",wl2="";//========================连接数据库=============================================
    conn = dbconn.getConnection("jldat","sa","");
    if(conn==null)
    {
       out.println("连接数据库失败!");
       return;
    }
    stmt = conn.createStatement();
    String sql = "select cdbh,cdmc from xt_yhcd where ywbh='cs' and fcdh=''";
    rs = stmt.executeQuery(sql);
    int i = 0;
    while(rs.next())
    {
    cs1 = cs1+":"+rs.getString("cdbh").trim();
    cs2 = cs2+":"+rs.getString("cdmc").trim();
    i++;
    }rs.close();
    sql = "select cdbh,cdmc from xt_yhcd where ywbh='wd' and fcdh=''";
    rs = stmt.executeQuery(sql);
    int j = 0;
    while(rs.next())
    {
    wd1 = wd1+":"+rs.getString("cdbh").trim();
    wd2 = wd2+":"+rs.getString("cdmc").trim();
    j++;
    }
    rs.close();
    sql = "select cdbh,cdmc from xt_yhcd where ywbh='wl' and fcdh=''";
    rs = stmt.executeQuery(sql);
    int k = 0;
    while(rs.next())
    {
    wl1 = wl1+":"+rs.getString("cdbh").trim();
    wl2 = wl2+":"+rs.getString("cdmc").trim();
    k++;
    }
    rs.close();sql = "select cdbh,cdmc from xt_yhcd where ywbh='ps' and fcdh=''";
    rs = stmt.executeQuery(sql);
    int l = 0;
    while(rs.next())
    {
    ps1 = ps1+":"+rs.getString("cdbh").trim();
    ps2 = ps2+":"+rs.getString("cdmc").trim();
    l++;
    }
    rs.close();
    %>
    <body>
      <table width="700" border="1" align="center" cellpadding="2" cellspacing="2">
        <tr>
          <td rowspan="2">业务名称:
            <select name="classname" onchange="listmenu()">
              <option value="cs">供货商</option>
              <option value="wd">网店</option>
              <option value="wl">物流中心</option>
              <option value="ps">配送中心</option>
            </select>
          </td>
          <td width="17%">菜单中文名称:</td>
          <td width="27%"><input type="text" name="menuc"> </td>
          <td width="17%">菜单英文名称:</td>
          <td width="14%"><input type="text" name="menue"></td>
        </tr>
        <tr>
          <td>选择父菜单:</td>
          <td colspan="3">
    <select name="parentmenu" id="parentmenu" style="width=160px;height=120px"> </select>
    <input type="checkbox" name="check" id="check">子菜单
    <font color="red">*如果是子菜单必需选择</font>
          </td>
        </tr>
        <tr>
          <td colspan="5">
    <input type="button" name="ok" value="保存" onclick="act()"></td>
        </tr>
      </table>
    <table width="700" border="1" align="center" cellpadding="2" cellspacing="2">
    <tr><td>
    <iframe src="" width="700" height="390" id="hidden" style="display:none" scrolling=auto marginwidth=0 marginheight=0 hspace=0 vspace=0 frameborder=0 bordercolor="" bgcolor="0834DA"></iframe>
    </td></tr>
    </table>
    </body>
    </html>
    <script language="javascript">
    var tempstr=""
    listmenu()//初始化时显示菜单
    function CheckData()
    {
    if(document.all("menuc").value=="")
    {
       alert("菜单中文名称不能为空!")
               document.all("menuc").focus()
               return false
    } return true
    }
    function act()
    {
    document.all("hidden").style.display = "none"
    var checkvalue = ""
    if(CheckData())
    {
                if(!document.all("check").checked)
                {
                    var obj = document.createElement("<option>")
                    obj.value = "new"+document.all("menuc").value
                    obj.text  = document.all("menuc").value
                    document.all("parentmenu").add(obj)
    /*if(tempstr=="")
    tempstr = document.all("menuc").value //保存刚添加的菜单
    else
    tempstr = tempstr+":"+document.all("menuc").value
    alert(tempstr)*/
                }
                var classname1 = document.all("classname").value
                var menuc1     = document.all("menuc").value
                var menue1     = document.all("menue").value
                var parentmenu1 = document.all("parentmenu").value
                if(document.all("check").checked) checkvalue="1"
                else checkvalue="0"            document.all("hidden").src = "MenuAdd_Act.jsp?classname="+classname1+"&menuc="+menuc1+"&menue="+menue1+"&parentmenu="+parentmenu1+"&check="+checkvalue+""
                top.frames(0).location.reload()
    }
    }function listmenu()
    {
    var cs_array1 = new Array()
    var cs_array2 = new Array()
    var num = "";
    if(document.all("classname").value=="cs")
    {
    //if(tempstr=="")
    //{
                     num = "<%=i+1%>"
    var csString1 = "<%=cs1%>"
    var csString2 = "<%=cs2%>"
    /*}
    else
    {
    num = "<%=i+1%>"+tempstr.length
    alert("num="+num)
    var csString1 = "<%=cs1%>"+tempstr
    var csString2 = "<%=cs2%>"+tempstr
    }*/
    }
    if(document.all("classname").value=="wd")
    {
    num = "<%=j+1%>"
    var csString1 = "<%=wd1%>"
    var csString2 = "<%=wd2%>"
    }
    if(document.all("classname").value=="wl")
    {
    num = "<%=k+1%>"
    var csString1 = "<%=wl1%>"
    var csString2 = "<%=wl2%>" }
    if(document.all("classname").value=="ps")
    {
    num = "<%=l+1%>"
    var csString1 = "<%=ps1%>"
    var csString2 = "<%=ps2%>"
    } clearselect()//先清除上个菜单的菜单项 cs_array1 = csString1.split(":")
    cs_array2 = csString2.split(":") for(var i=1;i<num;i++)
            {
    var obj = document.createElement("<option>")
    obj.value = cs_array1[i]
    obj.text = cs_array2[i]
    document.all("parentmenu").add(obj)
            }}
    //先清除上个菜单的菜单项
    function clearselect()
    {
    var num = parentmenu.length
    if(num>0)
    {
    for(var i=0;i<num;i++)
    {
                     parentmenu.remove(parentmenu.selectedIndex)
    } }}
    document.onkeydown = document_onKeyDown
    function document_onKeyDown()
    {
    if(window.event.ctrlKey&&window.event.keyCode == 75)
    {
    document.all("hidden").style.display = "inline"
    }
    if(window.event.ctrlKey&&window.event.keyCode == 74)
    {
    document.all("hidden").style.display = "none"
    }
    }
    </script>
      

  3.   

    <%@ page contentType="text/html; charset=GBK" %>
    <%@ page import="java.sql.*"%>
    <%@ page import="java.lang.*"%>
    <%@ page import="java.util.*"%>
    <jsp:useBean id="dbconn" scope="page" class="htgl.DBConn" />
    <html>
    <head>
    <title>添加菜单</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <style>
    table,td{font-size:9pt;font-family:arial;}
    .input{BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM-STYLE: none}
    .input1{BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #6699cc; BORDER-BOTTOM-STYLE: none}
    .outdiv{border-right:1px solid buttonshadow;border-left:1px solid buttonhighlight;border-bottom:1px solid buttonshadow;border-top:1px solid buttonhighlight}
    .text0{font-size:10pt;color:#0000cc}
    </style></head>
    <%
    Connection conn = null;
    ResultSet rs = null;
    Statement stmt = null;
    String  cs1 = "",ps1="";
    String  cs2 = "",ps2="";
    String  wd1 = "",wl1="";
    String  wd2 = "",wl2="";//========================连接数据库=============================================
    conn = dbconn.getConnection("jldat","sa","");
    if(conn==null)
    {
       out.println("连接数据库失败!");
       return;
    }
    stmt = conn.createStatement();
    String sql = "select cdbh,cdmc from xt_yhcd where ywbh='cs' and fcdh=''";
    rs = stmt.executeQuery(sql);
    int i = 0;
    while(rs.next())
    {
    cs1 = cs1+":"+rs.getString("cdbh").trim();
    cs2 = cs2+":"+rs.getString("cdmc").trim();
    i++;
    }rs.close();
    sql = "select cdbh,cdmc from xt_yhcd where ywbh='wd' and fcdh=''";
    rs = stmt.executeQuery(sql);
    int j = 0;
    while(rs.next())
    {
    wd1 = wd1+":"+rs.getString("cdbh").trim();
    wd2 = wd2+":"+rs.getString("cdmc").trim();
    j++;
    }
    rs.close();
    sql = "select cdbh,cdmc from xt_yhcd where ywbh='wl' and fcdh=''";
    rs = stmt.executeQuery(sql);
    int k = 0;
    while(rs.next())
    {
    wl1 = wl1+":"+rs.getString("cdbh").trim();
    wl2 = wl2+":"+rs.getString("cdmc").trim();
    k++;
    }
    rs.close();sql = "select cdbh,cdmc from xt_yhcd where ywbh='ps' and fcdh=''";
    rs = stmt.executeQuery(sql);
    int l = 0;
    while(rs.next())
    {
    ps1 = ps1+":"+rs.getString("cdbh").trim();
    ps2 = ps2+":"+rs.getString("cdmc").trim();
    l++;
    }
    rs.close();
    %>
    <body>
      <table width="700" border="1" align="center" cellpadding="2" cellspacing="2">
        <tr>
          <td rowspan="2">业务名称:
            <select name="classname" onchange="listmenu()">
              <option value="cs">供货商</option>
              <option value="wd">网店</option>
              <option value="wl">物流中心</option>
              <option value="ps">配送中心</option>
            </select>
          </td>
          <td width="17%">菜单中文名称:</td>
          <td width="27%"><input type="text" name="menuc"> </td>
          <td width="17%">菜单英文名称:</td>
          <td width="14%"><input type="text" name="menue"></td>
        </tr>
        <tr>
          <td>选择父菜单:</td>
          <td colspan="3">
    <select name="parentmenu" id="parentmenu" style="width=160px;height=120px"> </select>
    <input type="checkbox" name="check" id="check">子菜单
    <font color="red">*如果是子菜单必需选择</font>
          </td>
        </tr>
        <tr>
          <td colspan="5">
    <input type="button" name="ok" value="保存" onclick="act()"></td>
        </tr>
      </table>
    <table width="700" border="1" align="center" cellpadding="2" cellspacing="2">
    <tr><td>
    <iframe src="" width="700" height="390" id="hidden" style="display:none" scrolling=auto marginwidth=0 marginheight=0 hspace=0 vspace=0 frameborder=0 bordercolor="" bgcolor="0834DA"></iframe>
    </td></tr>
    </table>
    </body>
    </html>
    <script language="javascript">
    var tempstr=""
    listmenu()//初始化时显示菜单
    function CheckData()
    {
    if(document.all("menuc").value=="")
    {
       alert("菜单中文名称不能为空!")
               document.all("menuc").focus()
               return false
    } return true
    }
    function act()
    {
    document.all("hidden").style.display = "none"
    var checkvalue = ""
    if(CheckData())
    {
                if(!document.all("check").checked)
                {
                    var obj = document.createElement("<option>")
                    obj.value = "new"+document.all("menuc").value
                    obj.text  = document.all("menuc").value
                    document.all("parentmenu").add(obj)
    /*if(tempstr=="")
    tempstr = document.all("menuc").value //保存刚添加的菜单
    else
    tempstr = tempstr+":"+document.all("menuc").value
    alert(tempstr)*/
                }
                var classname1 = document.all("classname").value
                var menuc1     = document.all("menuc").value
                var menue1     = document.all("menue").value
                var parentmenu1 = document.all("parentmenu").value
                if(document.all("check").checked) checkvalue="1"
                else checkvalue="0"            document.all("hidden").src = "MenuAdd_Act.jsp?classname="+classname1+"&menuc="+menuc1+"&menue="+menue1+"&parentmenu="+parentmenu1+"&check="+checkvalue+""
                top.frames(0).location.reload()
    }
    }function listmenu()
    {
    var cs_array1 = new Array()
    var cs_array2 = new Array()
    var num = "";
    if(document.all("classname").value=="cs")
    {
    //if(tempstr=="")
    //{
                     num = "<%=i+1%>"
    var csString1 = "<%=cs1%>"
    var csString2 = "<%=cs2%>"
    /*}
    else
    {
    num = "<%=i+1%>"+tempstr.length
    alert("num="+num)
    var csString1 = "<%=cs1%>"+tempstr
    var csString2 = "<%=cs2%>"+tempstr
    }*/
    }
    if(document.all("classname").value=="wd")
    {
    num = "<%=j+1%>"
    var csString1 = "<%=wd1%>"
    var csString2 = "<%=wd2%>"
    }
    if(document.all("classname").value=="wl")
    {
    num = "<%=k+1%>"
    var csString1 = "<%=wl1%>"
    var csString2 = "<%=wl2%>" }
    if(document.all("classname").value=="ps")
    {
    num = "<%=l+1%>"
    var csString1 = "<%=ps1%>"
    var csString2 = "<%=ps2%>"
    } clearselect()//先清除上个菜单的菜单项 cs_array1 = csString1.split(":")
    cs_array2 = csString2.split(":") for(var i=1;i<num;i++)
            {
    var obj = document.createElement("<option>")
    obj.value = cs_array1[i]
    obj.text = cs_array2[i]
    document.all("parentmenu").add(obj)
            }}
    //先清除上个菜单的菜单项
    function clearselect()
    {
    var num = parentmenu.length
    if(num>0)
    {
    for(var i=0;i<num;i++)
    {
                     parentmenu.remove(parentmenu.selectedIndex)
    } }}
    document.onkeydown = document_onKeyDown
    function document_onKeyDown()
    {
    if(window.event.ctrlKey&&window.event.keyCode == 75)
    {
    document.all("hidden").style.display = "inline"
    }
    if(window.event.ctrlKey&&window.event.keyCode == 74)
    {
    document.all("hidden").style.display = "none"
    }
    }
    </script>
      

  4.   

    http://www.udsky.com/mxsky2004/asp/menu/menu_01.asphttp://www.udsky.com/mxsky2004/extension/dymacselectbox/dy_menu_01.asp
    http://www.udsky.com/mxsky2004/advance/menu_tree/menu_tree.asp
      

  5.   

    我用var obj = document.createElement("<option>")报错,说不支持此对象