1、编写测试表单
<form name="form">
<p>
<select name="Drop1" onChange="changeDrop2()" size="1">
<option selected value="Select A Product">
Select A Top Category
</option>
<%
for (Category top : topCategories) {
%>
<option value="<%=top.getId()%>"><%=top.getName()%></option>
<%//填充以及下拉框信息
}
%>
</select>
<br>
<select name="Drop2" size="1">
</select>
<br>
</p>
</form>
2、先定义两个方法,然后调用这两个方法
定义
<%!private List<Category> getTopCategories(List<Category> categories) {//得到第一层目录信息
List<Category> topCategories = new ArrayList<Category>();
for (int i = 0; i < categories.size(); i++) {
Category c = categories.get(i);
if (c.getGrade() == 1) {//grade为1时,为第一层目录
topCategories.add(c);
}
}
return topCategories;
}
private List<Category> getChilds(Category parent, List<Category> categories) {
List<Category> childs = new ArrayList<Category>();
for (int i = 0; i < categories.size(); i++) {
Category c = categories.get(i);
if (c.getPid() == parent.getId()) {//孩子节点的父ID号等于父节点的ID号时
childs.add(c);
}
}
return childs;
}//得到parent目录下的所有子目录信息
%>
调用
List<Category> topCategories = getTopCategories(categories);//得到第一层目录信息
3、javascript实现代码
<script LANGUAGE="JavaScript">
function changeDrop2() {
if (document.form.Drop1.selectedIndex == 0) {//如果以及下拉框未选
document.form.Drop2.length = 1;
document.form.Drop1.selectedIndex = 0
document.form.Drop2.selectedIndex = 0
document.form.Drop2.options[0].text = "No Top Category Selected";
document.form.Drop2.options[0].value = "No Top Category Selected";
}
<% for(Category top : topCategories) { %>
if (document.form.Drop1.options[document.form.Drop1.selectedIndex].value == <%=top.getId()%>) {
<%
List<Category> childs = getChilds(top, categories);//查询选中目录下的所有子目录信息
int i = 1;
%>//动态填充二级下拉框信息
document.form.Drop2.length = <%=childs.size() + 1%>;
document.form.Drop2.selectedIndex = 0
document.form.Drop2.options[0].text = "Select Second Category";
document.form.Drop2.options[0].value = "Select Second Category";
<% for (Category child : childs) { %>
document.form.Drop2.options[<%=i%>].text = "<%=child.getName()%>";
document.form.Drop2.options[<%=i%>].value = "<%=child.getId()%>";
<%
i ++;
}
%>
}
<% } %>
}
</script>
分享到:
相关推荐
wpf comboBox 下拉框全国地址联动 的整个项目代码
最近小弟做了Extjs实现实现下拉框联动的效果,参考了好久才学会,闲下来发一个简单的例子。。呵呵
一款简单的基于vue实现的三级联动下拉框代码,适用于各种三级联动下拉菜单选择功能。
asp二级联动下拉框,三级联动下拉框,asp二级联动下拉框,三级联动下拉框, 可能传错了 sorry
js实现省市区三级联动非select下拉框版.docx
该资源为已完成的拉框参数联动查询模板、饼图联动饼图模板,适配FR10.0版本、可直接下载学习使用。
jsp实现连动下拉框
资源名称:使用Javascript实现下拉框的动态控制 内容简介: 使用Javascript实现下拉框的动态控制 一、前言 下拉框是常用的一种web页面控件。它很简单实用,便于 操作者从…组选项...
JavaScript 实现连动下拉框 JavaScript 实现连动下拉框
js2级省市联动下拉框js2级省市联动下拉框js2级省市联动下拉框js2级省市联动下拉框
省市下拉框二级联动完成版(调试通过),本人花了几小时整理的,觉得是完整版。并且立即可以使用!
这是我自己总结出来easyui-textbox和easyui-combobox的onchange事件响应实例,绝对可用,网上很多实例都无法运行,这个我亲自测试可用使用才传上来的,供大家参考学习。
一个年月日三下拉框联动实现JS代码 <select name=YYYY onchange="YYYYMM(this.value)"> 请选择 年 <select name=MM onchange="MMDD(this.value)"> 选择 月 选择 日 </form>
ajax+asp+acces实现联动无限级下拉框
jquery实现的多级联动下拉框,由div标签加上span标签实现。
jquery 三级联动下拉框jquery 三级联动下拉框jquery 三级联动下拉框jquery 三级联动下拉框jquery 三级联动下拉框jquery 三级联动下拉框
不管数据源是什么,也不管是ASP,JSP,PHP,。NET,只要给传一个符合格式的JS数组就行了. js多层联动下拉框菜单
完全用asp实现二级下拉框联动,asp实现二级菜单联动。文件内附详细源码, 部分源码预览:<select name="select1" onChange="javascript:sel();"> 请选择=====">=====请选择===== if ch1=2 then for i=1 to m ...
javascript实现下拉框二级联动 思路清晰 简明易懂 效果惊人
使用bootstrap实现多选下拉框