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>
分享到:
相关推荐
"老二牛车Axure夜话:中继器系列视频教程之中继器下拉菜单联动"是一个针对Axure中继器(Repeater)功能的专题教程,旨在教授用户如何利用中继器实现下拉菜单的动态联动效果。这个教程可能是由一位名叫“老二牛车”的...
在网页开发中,"js下拉框三级联动菜单选择代码"是一种常见的交互设计,用于实现用户在选择省、市、区三个级别的下拉菜单时,选择一个级别后,下一个级别的菜单会根据前一个级别的选择自动更新。这种功能提高了用户...
完全用asp实现二级下拉框联动,asp实现二级菜单联动。文件内附详细源码, 部分源码预览:<select name="select1" onChange="javascript:sel();"> 请选择=====">=====请选择===== if ch1=2 then for i=1 to m ...
在这个项目中,我们关注的是如何利用DWR实现一个三级联动的下拉菜单。这种交互式菜单在用户界面设计中常见,用于在多个选项之间建立关联,如省份-城市-区县的选择,以提供更加精细化的筛选。 首先,我们需要理解DWR...
5. **前端展示**:在JavaScript中,我们需要监听一级下拉框的`onchange`事件,当事件触发时,发送AJAX请求并更新二级下拉框的选项。使用JSON.parse()解析服务器返回的数据,并用这些数据填充二级下拉框。 6. **JSTL...
"两个下拉框联动,二级联动下拉框.png"可能是这个功能的截图,而".url"文件则是一个指向Callie在新浪博客上关于该话题的链接,提供了更多详细信息和示例。 总的来说,HTML二级联动下拉列表框的实现涉及HTML、...
省市三级下拉框联动菜单是一种常见的前端交互设计,主要用于用户在填写表单时选择地理位置信息。这种设计可以高效地展示省、市、区/县的层级关系,方便用户快速定位到所需的位置。在JavaScript的加持下,这种联动...
在ASP中,四级联动下拉框是一种常见的交互设计,常见于网站的地区选择、分类导航等场景,它允许用户通过四个下拉菜单逐级选择,形成一个完整的选项路径。这种设计可以有效地组织大量数据,提供清晰的导航结构。 四...
为第一个下拉框添加一个`onchange`事件监听器,当用户更改选项时触发。 ```html <select id="category" onchange="fetchSubCategory()"> 请选择 <!-- 这里是预设的类别选项 --> 请选择 <!-- 这里将被动态...
在Web框架开发中,实现三级联动下拉框主要涉及到以下几个步骤和技术: 1. **HTML结构**: - 使用HTML的 `<select>` 元素构建基础的下拉框,每个级别可能包含多个 `<option>` 标签,分别代表不同的选项。 - 可能...
### 知识点概述 本文将详细介绍如何使用JavaScript...以上就是关于如何使用JavaScript实现省市区三级联动下拉框菜单的详细说明。通过上述内容,希望读者能够深入理解实现过程,并能够根据自己的需求调整和完善代码。
本文将详细讲解如何使用JSP从数据库获取数据来填充下拉框,进而实现二级联动菜单。 首先,我们需要在JSP页面中创建第一个下拉框,用于展示一级菜单。这个下拉框的数据是从数据库中获取的。例如: ```jsp listKey...
在网页设计和开发中,二级联动下拉菜单是一种常见的交互元素,主要用于实现多级选择功能。这种菜单在用户界面设计中扮演着重要角色,尤其是在数据分类复杂或需要用户精确选择某一范围时。以下是对二级联动下拉菜单...
通过监听第一个下拉框的`onchange`事件,可以触发对第二个下拉框的更新。例如: ```javascript $("#dropdown1").on("change", function() { var selectedValue = $(this).val(); // 使用Ajax发送请求获取新的...
总结起来,"html+js实现地区三级联动下拉菜单"是一种常见的前端交互设计,它利用HTML的`<select>`元素和JavaScript的事件监听及DOM操作实现地区选择的动态更新。这个示例代码简洁高效,适用于各种Web项目,并且提供...
- **HTML**:说明.htm可能包含了实现联动菜单的HTML结构,如两个下拉框(一个表示省份,一个表示城市),并且省份下拉框的onChange事件绑定到JavaScript函数上。 - **CSS**:虽然没有明确的CSS文件,但联动菜单的...
这种方法利用了事件触发机制,当用户在下拉菜单中选择一个选项时,会立即触发一个函数,该函数将所选值赋给指定的文本框。具体实现如下: ```html function oclick() { document.form1.a1.value = document.form1...
在PHP和MySQL环境中实现下拉菜单的二级...当一级菜单的`onchange`事件触发时,发送AJAX请求并更新二级菜单的内容。 ```html 请选择 <!-- PHP代码动态生成一级分类 --> <!-- AJAX请求后动态填充二级分类 --> ...
在Web开发过程中,实现下拉选择框(select)与输入框(input)的联动是一个常见的需求。这种联动功能可以提高用户的操作效率,避免用户手动输入相同的信息,从而减少输入错误的可能性。本文将详细介绍如何使用...
联动下拉菜单的基本原理是,当用户在一个下拉菜单中选择一个选项时,另一个下拉菜单的选项会根据前者的选中值动态更新。 1. **HTML基础布局**: - 创建两个或多个`<select>`元素,每个`<select>`对应一个级别的...