`
heng_aa
  • 浏览: 3915 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JS实现三级连动

阅读更多

 

 

          <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实现三级联动展现

    在这个例子中,"js实现三级联动展现",我们看到JavaScript是实现这种动态效果的关键。JavaScript是一种客户端脚本语言,它允许我们在用户与网页交互时执行代码,更新页面内容。在这种情况下,JavaScript负责监听第一...

    js 实现 三级联动

    运用 javascript 实现 三级联动 简单明了 可以根据 需要改成2级 或复杂的多级 只要思路清晰

    javascript实现三级联动选单

    ### JavaScript 实现三级联动选单知识点解析 #### 一、知识点概述 在Web开发中,三级联动选单是一种常见的交互式设计模式,主要用于提供多层级数据的选择方式,比如选择省份、城市、区县等场景。这种选单可以极...

    JS实现三级联动下拉框

    下面我们将详细探讨如何使用JavaScript实现三级联动下拉框。 首先,我们需要准备HTML结构。每个下拉框(`&lt;select&gt;`)都需要一个唯一的ID,以便于JavaScript获取和操作它们。例如: ```html &lt;select id="province"&gt;...

    javascript实现省市区三级联动

    在JavaScript编程中,实现省市区三级联动是一种常见的需求,尤其在构建动态网页和Web应用程序时。这个功能允许用户在选择省份后,市和区的选择会根据省份自动更新,提供更流畅的用户体验。以下是对这个主题的详细...

    js实现三级联动选择大学专业

    在这个“js实现三级联动选择大学专业”的项目中,数据来源是通过Scrapy爬虫从某高考网站获取的,这意味着我们首先需要处理这些数据。Scrapy是一个强大的Python爬虫框架,可以抓取网页内容并进行结构化处理。数据文件...

    js实现三级联动代码

    在JavaScript中实现三级联动,主要涉及以下几个关键知识点: 1. **DOM操作**:JavaScript需要能够操作HTML文档对象模型(DOM),包括获取元素、创建元素、修改元素和添加/删除元素。例如,我们需要获取到三个下拉...

    js三级联动经典实例值得一看

    用javaScript 实现三级联动 经典实例 js javaScript 三级联动 js javaScript 三级联动 js javaScript 三级联动

    jsp中用js实现三级联动

    jsp中用js代码实现了简易的三级联动功能

    js实现三级联动小例子

    使用js实现了二级,三级,联动的一个小李子。不错,与大家分享一下。

    js实现三级联动

    在这个例子中,我们看到的是一个基于JSP(JavaServer Pages)和JavaScript实现的三级联动下拉列表,涉及到的专业术语和知识点包括: 1. **JSP**:JavaServer Pages,是Java平台上的服务器端脚本语言,用于生成动态...

    js实现三级联动下拉列表

    简单的三级联动菜单,可优化。。。。。。。。。。。。

    JS三级联动菜单---世界主要国家地区.pdf

    本篇文章主要介绍了使用JavaScript实现三级联动菜单,涵盖了世界主要国家和地区。下面将对标题、描述、标签和部分内容中的知识点进行详细的解释和说明。 首先, lets talks about the title of this article: "JS三...

    纯js实现ajax无刷新三级联动

    本项目"纯js实现ajax无刷新三级联动"旨在利用JavaScript和Ajax技术,无需页面整体刷新即可实现多级选择联动效果,这种效果常见于下拉菜单的联动筛选中。在描述中提到,此项目使用了JSON格式进行数据交换,这有助于...

    Ajax JavaWeb JS 三级联动

    **三级联动实现步骤** 1. **HTML结构**:首先,我们需要创建三个下拉菜单元素,每个菜单项对应一个级别的数据。 2. **JavaScript初始化**:绑定事件监听器,例如使用`addEventListener`监听一级菜单的选择事件。 3. ...

    js三级联动

    利用js实现的省市区三级联动,php技术 非链接数据库

    Java web与数据库交互实现三级联动.docx

    Java Web 与数据库交互实现三级联动 本文主要讲解如何使用 Java Web 技术和 Ajax 技术实现三级联动的数据库交互。三级联动是指在一个表单中,选择一个省份,然后根据选择的省份动态加载城市的选项,最后根据选择的...

    js+jsp三级联动 源码

    在IT行业中,"js+jsp三级联动 源码"是一个常见的前端与后端交互的实践案例,主要用于实现用户界面的动态筛选和过滤。这里,我们主要探讨的是使用JavaScript(js)和JavaServer Pages(jsp)来创建一个具有三级联动...

    js省市地区三级联动

    在JavaScript编程中,"省市地区三级联动"是一种常见的前端交互设计,主要应用于网站或应用程序的地址选择功能。这种设计使得用户能够逐级选择省份、城市和区县,从而精确地定位到一个地理位置。以下是关于“js省市...

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

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

Global site tag (gtag.js) - Google Analytics