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模拟实现Array的sort方法
Dec 11 Javascript
JavaScript 三种不同位置代码的写法
Oct 25 Javascript
jquery一句话全选/取消全选
Mar 01 Javascript
javascript怎么禁用浏览器后退按钮
Mar 27 Javascript
jQuery实现form表单元素序列化为json对象的方法
Dec 09 Javascript
JQuery实现Ajax加载图片的方法
Dec 24 Javascript
详解JavaScript UTC时间转换方法
Jan 07 Javascript
理解javascript对象继承
Apr 17 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
Dec 23 Javascript
vue组件初学_弹射小球(实例讲解)
Sep 06 Javascript
浅谈微信JS-SDK 微信分享接口开发(介绍版)
Aug 15 Javascript
JavaScript交换变量常用4种方法解析
Sep 02 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 数组动态添加实现代码(最土团购系统的价格排序)
2011/12/30 PHP
PHP的PSR规范中文版
2013/09/28 PHP
php读取文件内容的方法汇总
2015/01/24 PHP
PHP用continue跳过本次循环中剩余代码的注意点
2017/06/27 PHP
解决在Laravel 中处理OPTIONS请求的问题
2019/10/11 PHP
仿163填写邮件地址自动显示下拉(无优化)
2008/11/05 Javascript
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
2009/05/21 Javascript
javascript,jquery闭包概念分析
2010/06/19 Javascript
js随机颜色代码的多种实现方式
2013/04/23 Javascript
不使用浏览器运行javascript代码的方法
2013/07/24 Javascript
Jquery插件分享之气泡形提示控件grumble.js
2014/05/20 Javascript
js和jquery中循环的退出和继续学习记录
2014/09/06 Javascript
jQuery结合CSS制作漂亮的select下拉菜单
2015/05/03 Javascript
JavaScript调用浏览器打印功能实例分析
2015/07/17 Javascript
picLazyLoad 实现图片延时加载(包含背景图片)
2016/07/21 Javascript
使用ajaxfileupload.js实现上传文件功能
2016/08/13 Javascript
Javascript发送AJAX请求实例代码
2016/08/21 Javascript
简单的js表格操作
2016/09/24 Javascript
JS中from 表单序列化提交的代码
2017/01/20 Javascript
原生javascript实现的全屏滚动功能示例
2017/09/19 Javascript
Angular.js通过自定义指令directive实现滑块滑动效果
2017/10/13 Javascript
在vue项目中使用md5加密的方法
2018/09/14 Javascript
Angular+Ionic使用queryParams实现跳转页传值的方法
2020/09/05 Javascript
详解Python中pandas的安装操作说明(傻瓜版)
2019/04/08 Python
python实现扫描局域网指定网段ip的方法
2019/04/16 Python
如何通过Python实现标签云算法
2019/07/02 Python
Python 动态导入对象,importlib.import_module()的使用方法
2019/08/28 Python
python中with语句结合上下文管理器操作详解
2019/12/19 Python
基于Keras的格式化输出Loss实现方式
2020/06/17 Python
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
美国最大的香水连锁店官网:Perfumania
2016/08/15 全球购物
美国眼镜网站:LensCrafters
2020/01/19 全球购物
LUISAVIAROMA中国官网:时尚奢侈品牌购物网站
2020/11/01 全球购物
2014年艾滋病防治工作总结
2014/12/10 职场文书
庆六一开幕词
2015/01/29 职场文书
分析MySQL抛出异常的几种常见解决方式
2021/05/18 MySQL