<td>
<div class="field">
<select name="province" otitle="常住城市"
id="shen" onchange="changeProvince();" >
<option value="" otitle="常住城市">
请选择省份
</option>
</select>
<select name="city" id="shi" onchange="getPreminuByCity();"otitle="常住城市">
<option value="" otitle="常住城市">
请选择城市
</option>
</select>
</div>
</td>
</tr>
<tr>
<th valign="top">
选择金额
</th>
<td>
<div class="field">
<select name="preminuId" id="preminuId"
<option value="" otitle="金额">
请选择
</option>
</select>
</div>
</td>
</tr>
var provinceInfos = new Array();//二维数组
var provinceInfos2 = new Array();//三维数组
var i = 0;
var j = 0;
var k = 0;
/***********************************************初始化数组*********************************************************/
<c:forEach var="provinceInfo" items="${provinceInfos}">
document.getElementById("shen")[i+1] = new Option('<c:out value="${provinceInfo.name}"/>');
document.getElementById("shen")[i+1].value = '<c:out value="${provinceInfo.code}"/>';
document.getElementById("shen")[i+1].id = i;
provinceInfos[i] = new Array();
provinceInfos2[i] = new Array();
j = 0;
<c:forEach var="cityInfo" items="${provinceInfo.citys}">
provinceInfos[i][j] = '<c:out value="${cityInfo.name}"/>' +":"+'<c:out value="${cityInfo.code}"/>';
provinceInfos2[i][j] = new Array();
k = 0;
<c:forEach var="premiumInfo" items="${cityInfo.premium}">
provinceInfos2[i][j][k] = '<c:out value="${premiumInfo}"/>';
k = k + 1;
</c:forEach>
j = j + 1;
</c:forEach>
i = i + 1;
</c:forEach>
//改变省份触发
function changeProvince(){
//一进来就还原..
document.getElementById("shi").options.length = 1;
//var length = document.getElementById("shen").length;
var selectValue = document.getElementById("shen").value;
if(selectValue!=''){
//第一种方法
/*
for(var i = 0; i<length; i++){
if(document.getElementById("shen")[i].value == selectValue){
for(var j=0; j<provinceInfos[i-1].length; j++){
var cityInfo = provinceInfos[i-1][j].split(':');
document.getElementById("shi")[j+1] = new Option(cityInfo[0]);
document.getElementById("shi")[j+1].value = cityInfo[1];
}
break;
}
}*/
//第二种方法
var selectIndex = document.getElementById("shen").selectedIndex;
for(var j=0; j<provinceInfos[selectIndex-1].length; j++){
var cityInfo = provinceInfos[selectIndex-1][j].split(':');
document.getElementById("shi")[j+1] = new Option(cityInfo[0]);
document.getElementById("shi")[j+1].value = cityInfo[1];
}
//默认选中第一个诚市
document.getElementById("shi")[1].selected = true;
}
//费用也跟着连动.
getPreminuByCity();
}
//改变城市触发
function getPreminuByCity(){
//一进来就还原..
document.getElementById("preminuId").options.length = 1;
if(document.getElementById("shi").value != ''){
var provinceIndex = document.getElementById("shen").selectedIndex;
var cityIndex = document.getElementById("shi").selectedIndex;
for(var i = 0; i<provinceInfos2[provinceIndex-1][cityIndex-1].length; i++){
document.getElementById("preminuId")[i+1] = new Option(provinceInfos2[provinceIndex-1][cityIndex-1][i]);
document.getElementById("preminuId")[i+1].value = provinceInfos2[provinceIndex-1][cityIndex-1][i];
}
//默认选中第一个
document.getElementById("preminuId")[1].selected = true;
}
}
新的:
//改变省份触发
function changeProvince(province, cityStr, preminuStr){
//一进来就还原城市..
var city = document.getElementById(cityStr);
city.options.length = 1;
//
var shenIndex = province.selectedIndex;
if(shenIndex > 0) {
for(var j=0; j<provinceInfos[shenIndex-1].length; j++){
var cityInfo = provinceInfos[shenIndex-1][j].split(':');
city[j+1] = new Option(cityInfo[0]);
city[j+1].value = cityInfo[1];
}
//默认选中第一个诚市
city[1].selected = true;
}
//费用也跟着连动.
getPreminuByCity(province.id, city, preminuStr);
}
//改变城市触发
function getPreminuByCity(provinceStr, city, preminuStr){
//一进来就还原..
var preminu = document.getElementById(preminuStr);
var province = document.getElementById(provinceStr);
preminu.options.length = 1;
var provinceIndex = province.selectedIndex;
var cityIndex = city.selectedIndex;
if(provinceIndex > 0 && cityIndex > 0){
for(var i = 0; i<provinceInfos2[provinceIndex-1][cityIndex-1].length; i++){
var preminuId = provinceInfos2[provinceIndex-1][cityIndex-1][i];
preminu[i+1] = new Option(Math.floor(preminuId));
preminu[i+1].value = preminuId;
}
//默认选中第一个
preminu[1].selected = true;
}
}
分享到:
相关推荐
在这个例子中,"js实现三级联动展现",我们看到JavaScript是实现这种动态效果的关键。JavaScript是一种客户端脚本语言,它允许我们在用户与网页交互时执行代码,更新页面内容。在这种情况下,JavaScript负责监听第一...
运用 javascript 实现 三级联动 简单明了 可以根据 需要改成2级 或复杂的多级 只要思路清晰
### JavaScript 实现三级联动选单知识点解析 #### 一、知识点概述 在Web开发中,三级联动选单是一种常见的交互式设计模式,主要用于提供多层级数据的选择方式,比如选择省份、城市、区县等场景。这种选单可以极...
下面我们将详细探讨如何使用JavaScript实现三级联动下拉框。 首先,我们需要准备HTML结构。每个下拉框(`<select>`)都需要一个唯一的ID,以便于JavaScript获取和操作它们。例如: ```html <select id="province">...
在JavaScript编程中,实现省市区三级联动是一种常见的需求,尤其在构建动态网页和Web应用程序时。这个功能允许用户在选择省份后,市和区的选择会根据省份自动更新,提供更流畅的用户体验。以下是对这个主题的详细...
在这个“js实现三级联动选择大学专业”的项目中,数据来源是通过Scrapy爬虫从某高考网站获取的,这意味着我们首先需要处理这些数据。Scrapy是一个强大的Python爬虫框架,可以抓取网页内容并进行结构化处理。数据文件...
在JavaScript中实现三级联动,主要涉及以下几个关键知识点: 1. **DOM操作**:JavaScript需要能够操作HTML文档对象模型(DOM),包括获取元素、创建元素、修改元素和添加/删除元素。例如,我们需要获取到三个下拉...
用javaScript 实现三级联动 经典实例 js javaScript 三级联动 js javaScript 三级联动 js javaScript 三级联动
jsp中用js代码实现了简易的三级联动功能
使用js实现了二级,三级,联动的一个小李子。不错,与大家分享一下。
在这个例子中,我们看到的是一个基于JSP(JavaServer Pages)和JavaScript实现的三级联动下拉列表,涉及到的专业术语和知识点包括: 1. **JSP**:JavaServer Pages,是Java平台上的服务器端脚本语言,用于生成动态...
简单的三级联动菜单,可优化。。。。。。。。。。。。
本篇文章主要介绍了使用JavaScript实现三级联动菜单,涵盖了世界主要国家和地区。下面将对标题、描述、标签和部分内容中的知识点进行详细的解释和说明。 首先, lets talks about the title of this article: "JS三...
本项目"纯js实现ajax无刷新三级联动"旨在利用JavaScript和Ajax技术,无需页面整体刷新即可实现多级选择联动效果,这种效果常见于下拉菜单的联动筛选中。在描述中提到,此项目使用了JSON格式进行数据交换,这有助于...
**三级联动实现步骤** 1. **HTML结构**:首先,我们需要创建三个下拉菜单元素,每个菜单项对应一个级别的数据。 2. **JavaScript初始化**:绑定事件监听器,例如使用`addEventListener`监听一级菜单的选择事件。 3. ...
利用js实现的省市区三级联动,php技术 非链接数据库
Java Web 与数据库交互实现三级联动 本文主要讲解如何使用 Java Web 技术和 Ajax 技术实现三级联动的数据库交互。三级联动是指在一个表单中,选择一个省份,然后根据选择的省份动态加载城市的选项,最后根据选择的...
在IT行业中,"js+jsp三级联动 源码"是一个常见的前端与后端交互的实践案例,主要用于实现用户界面的动态筛选和过滤。这里,我们主要探讨的是使用JavaScript(js)和JavaServer Pages(jsp)来创建一个具有三级联动...
在JavaScript编程中,"省市地区三级联动"是一种常见的前端交互设计,主要应用于网站或应用程序的地址选择功能。这种设计使得用户能够逐级选择省份、城市和区县,从而精确地定位到一个地理位置。以下是关于“js省市...
总结起来,"html+js实现地区三级联动下拉菜单"是一种常见的前端交互设计,它利用HTML的`<select>`元素和JavaScript的事件监听及DOM操作实现地区选择的动态更新。这个示例代码简洁高效,适用于各种Web项目,并且提供...