- 浏览: 143373 次
- 性别:
- 来自: 北京
最新评论
-
笑傲郝:
JSP中,hidden用法 -
眼镜蛇:
哦,找到了,getComboVc()。开始没细看。不好意思
Swing中可多选下拉框的简单实现 -
眼镜蛇:
朋友不知你还能不能看到,这个组件写得非常好。但我想知道,我应该 ...
Swing中可多选下拉框的简单实现 -
lzth:
--什么是命名查询?
Hibernate允许在映射文件中定义 ...
Hibernate中sql-query return CDATA 用法 -
wuzhiyuzhi:
在这里面写SQL有什么用的呀?为什么要在XML里这样写?
Hibernate中sql-query return CDATA 用法
所谓联动菜单,就是后一个下拉框的选项是根据前一个下拉框被选中的值来决定的,一个典型的应用就是省市联动菜单了,市的下拉选项是根据你选了哪个省来决定的,类似的需求我们经常遇到,相信许多新手都被这个问题困扰过。
其实,联动菜单的实现原理非常简单,本文详细介绍了联动菜单的实现方式,知道了原理,我们可以很容易地制作从XML、数据库加载的无限级联动菜单。
联动菜单的实现方法:
1.确定数据格式:
首先,我们介绍一下创建 Option 的语法:
Code:
var newOption = new Option(optionText, optionvalue);
根据上面的语法,我们知道 select 选项分 optionText 和 optionvalue 两个内容,optionText 即下拉框中我们看到的选项,而 optionvalue 则是提交的实际值。比如一个选项我们看到的是 “北京”,而实际提交的值是 “010”。
为了保持一致,我们确定选项的格式为:
Code:
{txt:"选项名", val:"选项值"}
那么一个选项组则是:
Code:
其中“父选项值”是父下拉列表选中的值。
注意:[ ] 和 {} 中的值是以“,” (逗号)分隔的,但是最后一个值后面不能有 “,” (逗号),否则语法错误, PHP 程序员要特别注意 !!!
2.根据传入的数组创建选项列表:
Code:
3.在设置选项之前,我们需要先将原有选项清空:
Code:
注意,这里不是用 selectObj.options[i] 而是用的 selectObj.options[0] ,由于在 options[0] 删除后,后面的选项就会补上,因此,我们只需要 selectObj.options[0] = null 。
4.设置一个提示选择项和默认选择项:
通常我们在下拉列表中会设置一个提示选择项,如:“请选择城市”,这个选项值为空,作用只是提示用户执行选择操作。
另外,下拉列表也需要能够设置默认选择项,即在页面加载的时候,设置选中状态的项目。
完整代码如下:
javascript:
根据这个结构,设置好数据,我们可以很容易的实现无限级联动菜单。或者我们也可以将数据存放在文件或数据库中,通过 Ajax 获取数据。
其实,联动菜单的实现原理非常简单,本文详细介绍了联动菜单的实现方式,知道了原理,我们可以很容易地制作从XML、数据库加载的无限级联动菜单。
联动菜单的实现方法:
1.确定数据格式:
首先,我们介绍一下创建 Option 的语法:
Code:
var newOption = new Option(optionText, optionvalue);
根据上面的语法,我们知道 select 选项分 optionText 和 optionvalue 两个内容,optionText 即下拉框中我们看到的选项,而 optionvalue 则是提交的实际值。比如一个选项我们看到的是 “北京”,而实际提交的值是 “010”。
为了保持一致,我们确定选项的格式为:
Code:
{txt:"选项名", val:"选项值"}
那么一个选项组则是:
Code:
var childArr = []; childArr['父选项值1'] = [ {txt:"选项名1", val:"选项值1"}, {txt:"选项名2", val:"选项值2"}, {txt:"选项名3", val:"选项值3"}, ... {txt:"选项名n", val:"选项值n"} ] childArr[' 父选项值2'] = [ {txt:"选项名1", val:"选项值1"}, {txt:"选项名2", val:"选项值2"}, {txt:"选项名3", val:"选项值3"}, ... {txt:"选项名n", val:"选项值n"} ]
其中“父选项值”是父下拉列表选中的值。
注意:[ ] 和 {} 中的值是以“,” (逗号)分隔的,但是最后一个值后面不能有 “,” (逗号),否则语法错误, PHP 程序员要特别注意 !!!
2.根据传入的数组创建选项列表:
Code:
for (var i=0; i < len; i++) { selectObj.options[i] = new Option(optionList[i].txt, optionList[i].val); }
3.在设置选项之前,我们需要先将原有选项清空:
Code:
function removeOptions(selectObj) { if (typeof selectObj != 'object') { selectObj = document.getElementById(selectObj); } // 原有选项计数 var len = selectObj.options.length; for (var i=0; i < len; i++) { // 移除当前选项 selectObj.options[0] = null; } }
注意,这里不是用 selectObj.options[i] 而是用的 selectObj.options[0] ,由于在 options[0] 删除后,后面的选项就会补上,因此,我们只需要 selectObj.options[0] = null 。
4.设置一个提示选择项和默认选择项:
通常我们在下拉列表中会设置一个提示选择项,如:“请选择城市”,这个选项值为空,作用只是提示用户执行选择操作。
另外,下拉列表也需要能够设置默认选择项,即在页面加载的时候,设置选中状态的项目。
完整代码如下:
javascript:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Untitled Document</title> <script language="JavaScript" type="text/javascript"> function removeOptions(selectObj){ if (typeof selectObj != 'object') { selectObj = document.getElementById(selectObj); } // 原有选项计数 var len = selectObj.options.length; for (var i = 0; i < len; i++) { // 移除当前选项 selectObj.options[0] = null; } } /** 说明:设置传入的选项值到指定的下拉列表中 * 作者:Admin * @param {String || Object]} selectObj 目标下拉选框的名称或对象,必须 * @param {Array} optionList 选项值设置 格式:[{txt:'北京 ', val:'010'}, * {txt:' 上海', val:'020'}] ,必须 * @param {String} firstOption 第一个选项值,如:“请选择”,可选,值为空 * @param {String} selected 默认选中值,可选 **/ function setSelectOption(selectObj, optionList, firstOption, selected){ if (typeof selectObj != 'object') { selectObj = document.getElementById(selectObj); } // 清空选项 removeOptions(selectObj); // 选项计数 var start = 0; // 如果需要添加第一个选项 if (firstOption) { selectObj.options[0] = new Option(firstOption, ''); // 选项计数从 1 开始 start++; } var len = optionList.length; for (var i = 0; i < len; i++) { // 设置 option selectObj.options[start] = new Option(optionList[i].txt, optionList[i].val); // 选中项 if (selected == optionList[i].val) { selectObj.options[start].selected = true; } // 计数加 1 start++; } } //--> </script> <script language="JavaScript" type="text/javascript"> var cityArr = []; cityArr['江苏省'] = [{txt: '南京',val: '南京'}, {txt: '无锡',val: '无锡'}, {txt: '徐州',val: '徐州'}, {txt: '苏州',val: '苏州'}, {txt: '南通',val: '南通'}, {txt: '淮阴',val: '淮阴'}, {txt: '扬州',val: '扬州'}, {txt: '镇江',val: '镇江'}, {txt: '常州',val: '常州'}]; cityArr['浙江省'] = [{txt: '杭州',val: '杭州'}, {txt: '宁波',val: '宁波'}, {txt: '温州',val: '温州'}, {txt: '湖州',val: '湖州'}]; function setCity(province){ setSelectOption('city', cityArr[province], '-请选择-'); } </script> <select name="province" id="province" onchange="if(this.value != '') setCity(this.options[this.selectedIndex].value);"> <option value="">-请选择-</option> <option value="江苏省">江苏省</option> <option value="浙江省">浙江省</option> </select> 省 <select name="city" id="city"> <option value="">-请选择-</option> </select> 市 </script> </head> <body> </body> </html>
根据这个结构,设置好数据,我们可以很容易的实现无限级联动菜单。或者我们也可以将数据存放在文件或数据库中,通过 Ajax 获取数据。
发表评论
-
java中serializable是什么
2012-04-27 10:02 0一个对象序列化的接口,一个类只有实现了Serializab ... -
Java获取本地IP
2012-04-26 17:36 940import java.net.*; pub ... -
Swing中可多选下拉框的简单实现
2011-07-08 11:00 8588实现可多选下拉框需要写三个类: MyComboBox ... -
我为什么选择 iBatis 而不是 Hibernate(对于正在选型的人的建议)
2011-07-07 15:10 962[注意]清在回复之前认真地看一下我的帖子,结合你的实际项目经验 ... -
选择Hibernate还是iBatis?
2011-07-07 15:05 1033选择Hibernate还是iBATIS都有它的道理: Hi ... -
通过 JAVA SWING 看透 MVC 设计模式[组图]
2011-07-05 12:42 1165一个好的用户界面(GUI) ... -
Swing MVC 结构
2011-07-05 10:03 1656MVC 是 Model-View-Controller 的简称 ... -
JTree放入JSplitPane范例
2011-07-02 14:58 1199范例1 import javax.swing.JFrame; ... -
STRUTS的struts--config.xml详解
2011-06-16 15:42 201001.<?xml version="1.0&q ... -
Proxool连接池实现
2011-06-16 11:13 969首先从 http://proxool.sourceforg ... -
<c:out value="${}"/>|JSTL标签|标签库和EL
2011-04-28 17:15 1326这是JSTL标签的用法 JST ... -
Spring MVC 入门
2011-04-15 14:07 850这篇文章将教你快速地上手使用 Spring 框架. 如果你 ... -
DispatcherServlet定义档
2011-04-15 10:11 1247DispatcherServlet预设使用servle ... -
JavaMail发送
2011-03-31 17:37 744public boolean sendMailWithPic( ... -
Velocity用法
2011-03-31 15:38 14571、"#"用来标识Velocity的脚本语 ... -
学习Spring之九:AOP in Spring
2011-03-15 22:27 830Spring IoC和 Spring AOP组合,一起形成了S ... -
web缓存服务器
2011-01-28 11:25 1283什么是web缓存服务器 无论企业有多大,Web缓存都有助于优 ... -
JEECMS3.0.2资料
2011-01-28 09:17 921http://jeecms.iteye.com/blog/85 ... -
PDFTable表格生成PDF
2010-06-02 09:28 2749package com.xishui.action; ... -
itext学习之表格pdftable (转载)
2010-06-02 09:26 1576一个最基本的PdfPTable的例子 package ...
相关推荐
总结起来,JavaScript实现联动菜单特效的关键在于利用`<select>`元素的`onchange`事件,以及动态修改DOM内容。在实际开发中,这样的功能可以扩展到更多层级的菜单,例如省份、城市、区县等。同时,也可以结合AJAX...
在JavaScript编程中,实现省市区三级联动是一种常见的需求,尤其在构建动态网页和Web应用程序时。这个功能允许用户在选择省份后,市和区的选择会根据省份自动更新,提供更流畅的用户体验。以下是对这个主题的详细...
javascript实现省市联动,提高javascript编程水平
总结来说,javascript实现省市县联动主要依赖于JavaScript的事件监听、DOM操作以及数据驱动。通过理解这些基本概念,开发者可以轻松实现类似的功能,提供更友好的用户界面。在实际开发中,还可以结合其他前端框架,...
在本教程中,我们将深入探讨如何利用JavaScript实现这种联动效果。 首先,理解联动的基本概念:联动意味着两个或多个组件之间存在依赖关系,当一个组件的状态改变时,其他相关组件会自动更新以反映这种变化。在...
在网页开发中,二级联动...总结来说,JavaScript实现二级联动下拉框的关键在于监听父级下拉框的改变事件,根据用户选择的数据动态更新子级下拉框的选项。通过合理的数据结构和异步处理,可以实现灵活且高效的联动效果。
下面我们将深入探讨如何使用JavaScript实现省市区联动。 首先,我们需要一个数据结构来存储省市区的层级关系。这个数据结构可以是一个嵌套的对象数组,每个对象代表一个地区,包含其ID、名称以及子地区的数组。例如...
JavaScript无限级联动算法是一种在前端开发中常见...记住,理解并掌握这种无限级联动的实现原理,对于提升你的JavaScript开发能力非常有帮助。同时,不断接受他人批评和建议,持续改进,是编程道路上不可或缺的一部分。
总之,JavaScript实现省市区联动菜单涉及到HTML布局、JavaScript事件处理、DOM操作以及数据结构的设计。通过合理地组织代码和利用浏览器的特性,我们可以创建出一个既实用又高效的联动菜单,满足用户的地理选择需求...
JavaScript实现联动的核心在于监听用户在一级菜单的选择,动态更新二级和三级菜单的内容。 4. **AJAX**:异步JavaScript和XML,虽然名字中有XML,但在实际应用中更多的是JSON格式。在三级联动中,AJAX可以用于后台...
前端部分,使用HTML和JavaScript实现联动效果。在HTML页面上创建两个下拉菜单,分别用于选择省份和城市。在DWR初始化时,可以通过`getProvinces()`方法获取所有省份填充到第一个下拉菜单。当用户选择省份时,触发...
在JSP页面中,使用Struts2标签库来显示数据,并通过JavaScript实现联动效果。 ##### 5.1 显示一级数据 ```jsp 请选择--"> ``` ##### 5.2 实现联动 ```javascript <script type="text/javascript"> function...
JavaScript 实现二级联动下拉框 本文将详细介绍如何使用 JavaScript 实现二级联动下拉框,包括标题、描述、标签、部分内容等信息。 标题:JavaScript 实现二级联动下拉框 描述:JavaScript 实现二级联动下拉框是...
"省市地区联动的Javascript实现"就是针对这一需求的解决方案。 在JavaScript中实现省市地区联动,主要涉及到以下几个关键知识点: 1. **DOM操作**:JavaScript提供了对HTML文档对象模型(DOM)的操作能力,通过...
javascript实现二级的省份城市联动。 var aprovince = [ ["--请选择省份--"], ["北京"], ["上海"], ["广东"], ["湖南"] ]; var acity = [ ["--请选择城市--"], ["东城区","西城区","南城区","北城区"], [...
根据提供的信息,我们可以了解到这份材料主要讲解了如何使用JavaScript实现二级联动效果。下面将详细解释这一知识点,并结合给出的部分代码进行分析。 ### JavaScript 实现二级联动 #### 一、二级联动概念 二级...
本文将基于提供的代码片段详细介绍如何利用JavaScript实现三级联动选单。 #### 二、关键概念与原理 1. **DOM操作**:在JavaScript中,通过DOM (Document Object Model) 操作文档结构,实现动态更新页面元素的功能...
本文将详细介绍如何使用JavaScript实现二级联动下拉框。 #### 示例背景 此示例主要针对具有二级联动功能的需求场景,其中第一级(如省份)是固定的选项,而第二级(如城市)的内容会根据第一级的选择动态变化。...