JavaScript实现省市区三级联动


Posted in Javascript onFebruary 13, 2020

本文实例为大家分享了JavaScript实现省市区三级联动的具体代码,供大家参考,具体内容如下

首先是js

$(document).ready(function(){
 getErpMarketByParentCode(0,'province',province);
 getErpMarketByParentCode(province,'city',city);
 getErpMarketByParentCode(city,'area',area);
 getErpMarketByParentCode(area,'market',market);
 $('#city').append($('<option>').val('').html('-请选择-')).val('');
 $('#area').append($('<option>').val('').html('-请选择-')).val('');
 if($('#market')){
 $('#market').append($('<option>').val('').html('-请选择-')).val('');
 }
 $('#province').change(function(){
 if($(this).val() == ''){ // 请选择
  $('#city').empty();
  $('#area').empty();
  $('#city').append($('<option>').val('').html('-请选择-')).val('');
  $('#area').append($('<option>').val('').html('-请选择-')).val('');
  if($('#market')){
  $('#market').empty();
  $('#market').append($('<option>').val('').html('-请选择-')).val('');
  }
  return;
 }
 getErpMarketByParentCode($(this).val(),'city');
 $('#area').empty();
 $('#area').append($('<option>').val('').html('-请选择-')).val('');
 });
 
 $('#city').change(function(){
 getErpMarketByParentCode($(this).val(),'area');
 if($('#market')){
  $('#market').empty();
  $('#market').append($('<option>').val('').html('-请选择-')).val('');
 }
 });
 
 $('#area').change(function(){
 getErpMarketByParentCode($(this).val(),'market');
 });
});
 
function getErpMarketByParentCode(parentCode, id, value){
 $.ajax({  
   url:'/getErpMarketByParentCode',  
   type:'post',  
   data:{
   code:parentCode
   },  
   dataType : 'json',
   error:function(){  
    alert('error');  
   },  
   success:function(data){  
    var select = $('#' + id);
    if(select){
     select.empty();
    select.append($('<option>').val('').html('-请选择-'));
    $.each(data.erpMarketList,function(i, erpMarket){
     select.append($('<option>').val(erpMarket.code).html(erpMarket.name));
    });
    select.val(value);
    }
   }
 });
}

然后是后台方法

@RequestMapping(value = "/getErpMarketByParentCode")
 public ModelAndView getErpMarketByParentCode(HttpServletRequest request, HttpServletResponse response) throws Exception {
 String code = request.getParameter("code");
 List<ErpMarket> erpMarketList = erpMarketService.getErpMarketListByParentCode(code);
 JSONObject jsonObject = new JSONObject();
 jsonObject.put("erpMarketList",erpMarketList);
 response.getWriter().write(jsonObject.toString());
 return null;
 }

service方法,是从内从中获取省市区这张表

public List<ErpMarket> getErpMarketListByParentCode(String parentCode){
 Hashtable erpMarketTable = LoadOnStartService.erpMarketTable;//从内存中获取这张表
 List<ErpMarket> erpMarketList = new ArrayList<ErpMarket>();
 Iterator its = erpMarketTable.keySet().iterator();
 while(its.hasNext()){
  String key = Util.getString(its.next());
  ErpMarket erpMarket = (ErpMarket)erpMarketTable.get(key);
  if(parentCode.equals(erpMarket.getParentCode())){
  erpMarketList.add(erpMarket);
  }
 }
 return erpMarketList;
 }

省市区的实体类

package com.erp.entity;
 
/**
 * ErpMarket entity.
 * 
 * @author MyEclipse Persistence Tools
 */
 
public class ErpMarket implements java.io.Serializable {
 
 // Fields
 
 private String code;
 private String shortCode;
 private String name;
 private String level;
 private String parentCode;
 
 // Constructors
 
 /** default constructor */
 public ErpMarket() {
 }
 
 /** full constructor */
 public ErpMarket(String shortCode, String name, String level, String parentCode) {
 this.shortCode = shortCode;
 this.name = name;
 this.level = level;
 this.parentCode = parentCode;
 }
 
 // Property accessors
 
 public String getCode() {
 return this.code;
 }
 
 public void setCode(String code) {
 this.code = code;
 }
 
 public String getShortCode() {
 return this.shortCode;
 }
 
 public void setShortCode(String shortCode) {
 this.shortCode = shortCode;
 }
 
 public String getName() {
 return this.name;
 }
 
 public void setName(String name) {
 this.name = name;
 }
 
 public String getLevel() {
 return this.level;
 }
 
 public void setLevel(String level) {
 this.level = level;
 }
 
 public String getParentCode() {
 return this.parentCode;
 }
 
 public void setParentCode(String parentCode) {
 this.parentCode = parentCode;
 }
 
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
利用js跨页面保存变量做菜单的方法
Jan 17 Javascript
JS动态创建DOM元素的方法
Jun 09 Javascript
jQuery实现自动切换播放的经典滑动门效果
Sep 12 Javascript
javascript html5移动端轻松实现文件上传
Mar 27 Javascript
浅谈JS中的三种字符串连接方式及其性能比较
Sep 02 Javascript
Javascript动画效果(1)
Oct 11 Javascript
easyui-combobox 实现简单的自动补全功能示例
Nov 08 Javascript
JavaScript动态数量的文件上传控件
Nov 18 Javascript
Javascript oop设计模式 面向对象编程简单实例介绍
Dec 13 Javascript
AngularJS通过ng-Img-Crop实现头像截取的示例
Aug 17 Javascript
layui form.render('select', 'test2') 更新渲染的方法
Sep 27 Javascript
vue 实现路由跳转时更改页面title
Nov 05 Javascript
jquery传参及获取方式(两种方式)
Feb 13 #jQuery
JS实现页面数据懒加载
Feb 13 #Javascript
node.js中fs文件系统模块的使用方法实例详解
Feb 13 #Javascript
原生JS与JQ获取元素的区别详解
Feb 13 #Javascript
node.js中path路径模块的使用方法实例分析
Feb 13 #Javascript
node.js中stream流中可读流和可写流的实现与使用方法实例分析
Feb 13 #Javascript
JavaScript 中的无穷数(Infinity)详解
Feb 13 #Javascript
You might like
强烈推荐:php.ini中文版(1)
2006/10/09 PHP
PHP自定义函数收代码
2010/08/01 PHP
PHP常用字符串输出方法分析(echo,print,printf及sprintf)
2021/03/09 PHP
jquery选择器(常用选择器说明)
2010/09/28 Javascript
jq选项卡鼠标延迟的插件实例
2013/05/13 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
Javascript中查找不以XX字符结尾的单词示例代码
2013/10/15 Javascript
nodejs之请求路由概述
2014/07/05 NodeJs
浅谈js原生拖放
2016/11/21 Javascript
JS实现点击表头表格自动排序(含数字、字符串、日期)
2017/01/22 Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
2017/02/14 Javascript
详解用vue编写弹出框组件
2017/07/04 Javascript
ES6中字符串string常用的新增方法小结
2017/11/07 Javascript
详解vue中router-link标签所必备了解的属性
2019/04/15 Javascript
详解elementui之el-image-viewer(图片查看器)
2019/08/30 Javascript
jquery+css3实现的经典弹出层效果示例
2020/05/16 jQuery
vue各种事件监听实例(小结)
2020/06/24 Javascript
在Linux中通过Python脚本访问mdb数据库的方法
2015/05/06 Python
python查询sqlite数据表的方法
2015/05/08 Python
使用Python实现简单的服务器功能
2017/08/25 Python
python实现人像动漫化的示例代码
2020/05/17 Python
浅谈keras中Dropout在预测过程中是否仍要起作用
2020/07/09 Python
地图可视化神器kepler.gl python接口的使用方法
2020/12/22 Python
AmazeUI 导航条的实现示例
2020/08/14 HTML / CSS
阿迪达斯俄罗斯官方商城:adidas俄罗斯
2017/03/08 全球购物
阳光体育:Sunny Sports(购买露营和远足设备)
2018/08/07 全球购物
纯净、自信、100%的羊绒服装:360Cashmere
2021/02/20 全球购物
医药工作者的求职信范文
2013/09/21 职场文书
兼职学生的自我评价
2013/11/24 职场文书
安全协议书
2014/04/23 职场文书
学校就业推荐信范文
2014/05/19 职场文书
公司踏青活动方案
2014/08/16 职场文书
教师反腐倡廉演讲稿
2014/09/03 职场文书
技术员岗位职责
2015/02/04 职场文书
教你快速构建一个基于nginx的web集群项目
2021/11/27 Servers
Java中的Kotlin 内部类原理
2022/06/16 Java/Android