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 相关文章推荐
javascript操作cookie_获取与修改代码
May 21 Javascript
javascript AOP 实现ajax回调函数使用比较方便
Nov 20 Javascript
利用jquery操作Radio方法小结
Oct 20 Javascript
js面向对象之公有、私有、静态属性和方法详解
Apr 17 Javascript
编写高性能Javascript代码的N条建议
Oct 12 Javascript
微信小程序左右滑动切换页面详解及实例代码
Feb 28 Javascript
详解用vue.js和laravel实现微信授权登陆
Jun 23 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
Jul 26 Javascript
JS函数节流和防抖之间的区分和实现详解
Jan 11 Javascript
node实现简单的增删改查接口实例代码
Aug 22 Javascript
js计算最大公约数和最小公倍数代码实例
Sep 11 Javascript
JavaScript 类的封装操作示例详解
May 16 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
JavaScript toFixed() 方法
2010/04/15 Javascript
CSS(js)限制页面显示的文本字符长度
2012/12/27 Javascript
js加强的经典分页实例
2013/03/15 Javascript
jquery实现超简洁的TAB选项卡效果代码
2015/08/28 Javascript
使用vue.js制作分页组件
2016/06/27 Javascript
jQuery时间验证和转换为标准格式的时间格式
2017/03/06 Javascript
深入对Vue.js $watch方法的理解
2017/03/20 Javascript
nodejs6下使用koa2框架实例
2017/05/18 NodeJs
实现一个完整的Node.js RESTful API的示例
2017/09/29 Javascript
基于react后端渲染模板引擎noox发布使用
2018/01/11 Javascript
浅谈webpack+react多页面开发终极架构
2018/11/11 Javascript
微信小程序新手教程之页面打开数量限制
2019/03/03 Javascript
vue基础知识--axios合并请求和slot
2020/06/04 Javascript
JavaScript经典案例之简易计算器
2020/08/24 Javascript
python绘图方法实例入门
2015/05/19 Python
Python 提取dict转换为xml/json/table并输出的实现代码
2016/08/28 Python
Python 使用SMTP发送邮件的代码小结
2016/09/21 Python
django文档学习之applications使用详解
2018/01/29 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
Python实现的爬取小说爬虫功能示例
2019/03/30 Python
使用python-pptx包批量修改ppt格式的实现
2020/02/14 Python
python爬虫利用代理池更换IP的方法步骤
2021/02/21 Python
10个很棒的 CSS3 开发工具 推荐
2011/05/16 HTML / CSS
BabyBjörn婴儿背带法国官网:BabyBjorn法国
2018/06/16 全球购物
美国在线轮胎零售商:SimpleTire
2019/04/08 全球购物
ORACLE十问
2015/04/20 面试题
什么情况下你必须要把一个类定义为abstract的
2013/01/06 面试题
你所在的项目是如何确定版本号的
2015/12/28 面试题
体育教师工作总结的自我评价
2013/10/10 职场文书
2013年大学生的自我鉴定
2013/10/24 职场文书
客户服务经理岗位职责
2014/01/29 职场文书
亲子拓展活动方案
2014/02/20 职场文书
2014年党员加强作风建设思想汇报
2014/09/15 职场文书
2016中秋节月饼促销广告语
2016/01/28 职场文书
创业计划书之少年玩具店
2019/09/05 职场文书
前端使用svg图片改色实现示例
2022/07/23 HTML / CSS