首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

JS二级级联下拉菜单,该如何处理

2013-08-14 
JS二级级联下拉菜单有一个二级级联下拉菜单,但是就是不显示,大侠们看看啥问题? trtd alignright学

JS二级级联下拉菜单
有一个二级级联下拉菜单,但是就是不显示,大侠们看看啥问题?

 <tr>
<td align="right">学院:</td>
<td><select name="role" onBlur="checkRole(this)" onchange="populateMajor(this.options[this.selectedIndex].value)">
<option value="0">-请选择学院-</option>
<%
List<Department> list = new ArrayList<Department>();
    DepartmentDao dao = new DepartmentDaoImpl();
list = dao.findAllDepartments();// 调用实现类的查询全部方法
for (int i = 0; i < list.size(); i++) {
Department d = list.get(i);
%>
<option value="<%=d.getD_id()%>"><%=d.getD_name()%></option>
<%
}
%>
</select>
                 <!--级联二级菜单  -->

<%
List<MajorAndClass> list1 = new ArrayList<MajorAndClass>();
            MajorAndClassDao mdao = new MajorAndClassDaoImpl();
list1 = mdao.findAllMajorAndClass();// 调用实现类的查询全部方法
%>
<script type="text/javascript">
var onecount=0;//定义一个变量,记录Major个数
var listMajor= new Array();//定义一个数组,记录Major内容
<%
int count = 0;//listMajor下标
for (int i = 0; i < list1.size(); i++) {
MajorAndClass m = list1.get(i);
%>
listMajor[<%=count%>]= new Array(<%=m.getName()%>,<%=m.getM_id()%>,<%=m.getDepartment().getD_id()%>);//把list数据放入listMajor数组
<%count++;

}%>
onecount=<%=count%>;
function populateMajor(dID){//显示二级菜单Major
document.getElementById("major").options.length=0;

if(dID!=""){
var dID=parseInt(dID);

for(var i=0;i<onecount;i++)
{
if(listMajor[i][2]==dID)
{

document.getElementById("major").options[i]=new Option[listMajor[i][0],listMajor[i][1]];
}
}
         }
}
</script>

</td>
<td>
<select id="major" name="major">
<option value="0" selected>-请选择专业-</option>
</select>
</td>



</tr>


效果图:JS二级级联下拉菜单,该如何处理 JavaScript JSP
[解决办法]
数据获取有没有问题,这个你自己去查。
JS方面有有一处问题:
document.getElementById("major").options[i]=new Option[listMajor[i][0],listMajor[i][1]];
请改成:
document.getElementById("major").options[i]=new Option(listMajor[i][0],listMajor[i][1]);
[解决办法]
<script type="text/javascript"> 
var  listMajor = new Array(); 
        <% 
        for (int i = 0; i < list1.size(); i++) {
MajorAndClass m = list1.get(i);
        %> 
        listMajor.push(['<%=m.getName()%>',<%=m.getM_id()%>,<%=m.getDepartment().getD_id()%>]); 
        <% } %> 

function changelocation(dID) 
    { 
document.getElementById('major').innerHTML =''; 
var fragment = document.createDocumentFragment(); 
for(var i =0;i<listMajor.length;i++){ 
if(listMajor[i][2] == dID) { 
var option = document.createElement("option"); 
option.value = listMajor[i][1]; 
option.innerHTML = listMajor[i][0]; 
fragment.appendChild(option); 



document.getElementById('major').appendChild(fragment); 

</script>

楼主看看可以不?

热点排行