有两个select:
选择年级<select name="grade" onchange="changeClass">
<option value="grade1">grade1</option>
<option value="grade2">grade2</option>
<option value="grade3">grade3</option>
<option value="grade4">grade4</option>
</select>选择班级<select name="clazz">
</select>想达到的目的是:
当第一个select的年级改变时,
第二个select下拉列表改变成第一个select的年级所对应的班级应该怎样实现????我是这样想的:
<script type="text/javascript">
<!--
function changeClass()
{
var grd = this.value;//保存select grade的值 <% List list = new ArrayList();
                //调用函数返回某年级所有的班级
list = Clazz.listAllClass(/*这里的参数数值应该是select grade的值*/);//但不知道javascript变量grd怎样赋给java变量!!!

int i, n = list.size();
for(i=0;i<n;i++)
{%>
clazz.option[i].value=<%=list.get(i)%>
<%}%>
}
//-->高手指点!

解决方案 »

  1.   

    感觉你的想法不对,总的来说你的问题是联动下拉列表如何实现的问题
    你可以用ajax去实现,每次年级变化时,用ajax去服务器重新查询下该年级所对应的班级
    然后用JAVASCRIPT把班级的下拉列表改变
      

  2.   

    你犯了一个概念错误:
    jsp是个服务器端的东东。他工作的结果是个HTML。而你的需求是在这个HTML到达客户端后,根据用户的动作改变select的options.那时候,jsp已经管不了啦。
    1楼的建议是对的。
    还有个办法是一次将所有的班级传到页面,由js控制options.本方案适用于数据两不大的情况,优点是减少了服务器交互。用户体验和服务器负荷都好一点。
    祝你顺利。