`

菜单联动的实现一(下拉框的onchange事件)

阅读更多

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夜话:中继器系列视频教程之中继器下拉菜单联动"是一个针对Axure中继器(Repeater)功能的专题教程,旨在教授用户如何利用中继器实现下拉菜单的动态联动效果。这个教程可能是由一位名叫“老二牛车”的...

    js下拉框三级联动菜单选择代码

    在网页开发中,"js下拉框三级联动菜单选择代码"是一种常见的交互设计,用于实现用户在选择省、市、区三个级别的下拉菜单时,选择一个级别后,下一个级别的菜单会根据前一个级别的选择自动更新。这种功能提高了用户...

    完全用asp实现二级菜单联动.doc

    完全用asp实现二级下拉框联动,asp实现二级菜单联动。文件内附详细源码, 部分源码预览:&lt;select name="select1" onChange="javascript:sel();"&gt; 请选择====="&gt;=====请选择===== if ch1=2 then for i=1 to m ...

    DWR级联菜单下拉框

    在这个项目中,我们关注的是如何利用DWR实现一个三级联动的下拉菜单。这种交互式菜单在用户界面设计中常见,用于在多个选项之间建立关联,如省份-城市-区县的选择,以提供更加精细化的筛选。 首先,我们需要理解DWR...

    实现jsp页面二级下拉框联动,实时读取数据库数据

    5. **前端展示**:在JavaScript中,我们需要监听一级下拉框的`onchange`事件,当事件触发时,发送AJAX请求并更新二级下拉框的选项。使用JSON.parse()解析服务器返回的数据,并用这些数据填充二级下拉框。 6. **JSTL...

    HTML二级联动下拉列表框的实现,如选择 省,市.zip

    "两个下拉框联动,二级联动下拉框.png"可能是这个功能的截图,而".url"文件则是一个指向Callie在新浪博客上关于该话题的链接,提供了更多详细信息和示例。 总的来说,HTML二级联动下拉列表框的实现涉及HTML、...

    省市三级下拉框联动菜单

    省市三级下拉框联动菜单是一种常见的前端交互设计,主要用于用户在填写表单时选择地理位置信息。这种设计可以高效地展示省、市、区/县的层级关系,方便用户快速定位到所需的位置。在JavaScript的加持下,这种联动...

    ASP四级联动下拉框代码

    在ASP中,四级联动下拉框是一种常见的交互设计,常见于网站的地区选择、分类导航等场景,它允许用户通过四个下拉菜单逐级选择,形成一个完整的选项路径。这种设计可以有效地组织大量数据,提供清晰的导航结构。 四...

    Ajax_实现下拉框的联动(详细注释)

    为第一个下拉框添加一个`onchange`事件监听器,当用户更改选项时触发。 ```html &lt;select id="category" onchange="fetchSubCategory()"&gt; 请选择 &lt;!-- 这里是预设的类别选项 --&gt; 请选择 &lt;!-- 这里将被动态...

    三级联动地区下拉框.zip

    在Web框架开发中,实现三级联动下拉框主要涉及到以下几个步骤和技术: 1. **HTML结构**: - 使用HTML的 `&lt;select&gt;` 元素构建基础的下拉框,每个级别可能包含多个 `&lt;option&gt;` 标签,分别代表不同的选项。 - 可能...

    javascript实现省市区三级联动下拉框菜单

    ### 知识点概述 本文将详细介绍如何使用JavaScript...以上就是关于如何使用JavaScript实现省市区三级联动下拉框菜单的详细说明。通过上述内容,希望读者能够深入理解实现过程,并能够根据自己的需求调整和完善代码。

    jsp从数据库获取数据填充下拉框实现二级联动菜单的方法

    本文将详细讲解如何使用JSP从数据库获取数据来填充下拉框,进而实现二级联动菜单。 首先,我们需要在JSP页面中创建第一个下拉框,用于展示一级菜单。这个下拉框的数据是从数据库中获取的。例如: ```jsp listKey...

    二级联动下拉菜单实例

    在网页设计和开发中,二级联动下拉菜单是一种常见的交互元素,主要用于实现多级选择功能。这种菜单在用户界面设计中扮演着重要角色,尤其是在数据分类复杂或需要用户精确选择某一范围时。以下是对二级联动下拉菜单...

    asp下拉框二次联动

    通过监听第一个下拉框的`onchange`事件,可以触发对第二个下拉框的更新。例如: ```javascript $("#dropdown1").on("change", function() { var selectedValue = $(this).val(); // 使用Ajax发送请求获取新的...

    html+js实现地区三级联动下拉菜单

    总结起来,"html+js实现地区三级联动下拉菜单"是一种常见的前端交互设计,它利用HTML的`&lt;select&gt;`元素和JavaScript的事件监听及DOM操作实现地区选择的动态更新。这个示例代码简洁高效,适用于各种Web项目,并且提供...

    实现帝国省市联动菜单

    - **HTML**:说明.htm可能包含了实现联动菜单的HTML结构,如两个下拉框(一个表示省份,一个表示城市),并且省份下拉框的onChange事件绑定到JavaScript函数上。 - **CSS**:虽然没有明确的CSS文件,但联动菜单的...

    asp如何实现动态下拉菜单赋值给文本框

    这种方法利用了事件触发机制,当用户在下拉菜单中选择一个选项时,会立即触发一个函数,该函数将所选值赋给指定的文本框。具体实现如下: ```html function oclick() { document.form1.a1.value = document.form1...

    phpmysql下拉菜单二级联动

    在PHP和MySQL环境中实现下拉菜单的二级...当一级菜单的`onchange`事件触发时,发送AJAX请求并更新二级菜单的内容。 ```html 请选择 &lt;!-- PHP代码动态生成一级分类 --&gt; &lt;!-- AJAX请求后动态填充二级分类 --&gt; ...

    js下拉选择框与输入框联动实现添加选中值到输入框的方法

    在Web开发过程中,实现下拉选择框(select)与输入框(input)的联动是一个常见的需求。这种联动功能可以提高用户的操作效率,避免用户手动输入相同的信息,从而减少输入错误的可能性。本文将详细介绍如何使用...

    javascript html js 自定义多级联动下拉菜单,自定义select联动

    联动下拉菜单的基本原理是,当用户在一个下拉菜单中选择一个选项时,另一个下拉菜单的选项会根据前者的选中值动态更新。 1. **HTML基础布局**: - 创建两个或多个`&lt;select&gt;`元素,每个`&lt;select&gt;`对应一个级别的...

Global site tag (gtag.js) - Google Analytics