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 密码强弱度检测万能插件
Feb 25 Javascript
javascript 支持链式调用的异步调用框架Async.Operation
Aug 04 Javascript
基于jQuery的消息提示插件之旅 DivAlert(三)
Apr 01 Javascript
E3 tree 1.6在Firefox下显示问题的修复方法
Jan 30 Javascript
jquery实现手机发送验证码的倒计时代码
Feb 12 Javascript
JavaScript中解析JSON数据的三种方法
Jul 03 Javascript
js 获取站点应用名的简单实例
Aug 18 Javascript
jQuery.datatables.js插件用法及api实例详解
Oct 28 Javascript
Vue.JS入门教程之处理表单
Dec 01 Javascript
在vue2.0中引用element-ui组件库的方法
Jun 21 Javascript
原生JS检测CSS3动画是否结束的方法详解
Jan 27 Javascript
jQuery Raty星级评分插件使用方法实例分析
Nov 25 jQuery
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
将数字格式的计算结果转为汉字格式
2006/10/09 PHP
PHP容易忘记的知识点分享
2013/04/30 PHP
php中利用str_pad函数生成数字递增形式的产品编号
2013/09/30 PHP
ThinkPHP中redirect用法分析
2014/12/05 PHP
2017年最新PHP经典面试题目汇总(上篇)
2017/03/17 PHP
关于php 高并发解决的一点思路
2017/04/16 PHP
PHP get_html_translation_table()函数用法讲解
2019/02/16 PHP
Javascript操纵Cookie实现购物车程序
2007/02/15 Javascript
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
extjs之去除s.gif的影响
2010/12/25 Javascript
ejs v9 javascript模板系统
2012/03/21 Javascript
强大的 Angular 表单验证功能详细介绍
2017/05/23 Javascript
微信小程序商品详情页规格属性选择示例代码
2017/10/30 Javascript
浅谈vue自定义全局组件并通过全局方法 Vue.use() 使用该组件
2017/12/07 Javascript
使用Vue开发一个实时性时间转换指令
2018/01/17 Javascript
vue移动端轻量级的轮播组件实现代码
2018/07/12 Javascript
浅谈vue 单文件探索
2018/09/05 Javascript
微信小程序实现页面下拉刷新和上拉加载功能详解
2018/12/03 Javascript
jQuery实现当拉动滚动条到底部加载数据的方法分析
2019/01/24 jQuery
对layui初始化列表的CheckBox属性详解
2019/09/13 Javascript
vue mvvm数据响应实现
2020/11/11 Javascript
Python写的Discuz7.2版faq.php注入漏洞工具
2014/08/06 Python
简化Python的Django框架代码的一些示例
2015/04/20 Python
python 实现A*算法的示例代码
2018/08/13 Python
Python多进程与服务器并发原理及用法实例分析
2018/08/21 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
2019/04/26 Python
python中单下划线(_)和双下划线(__)的特殊用法
2019/08/29 Python
python树的同构学习笔记
2019/09/14 Python
基于Python实现船舶的MMSI的获取(推荐)
2019/10/21 Python
加拿大著名时装品牌:SOIA & KYO
2016/08/23 全球购物
KIKO MILANO荷兰网上商店:意大利专业化妆品品牌
2017/05/12 全球购物
我们是伦敦女孩:WalG
2018/01/08 全球购物
捷克原创男装和女装购物网站:Bolf.cz
2018/04/28 全球购物
天那边观后感
2015/06/09 职场文书
2016年寒假家长评语
2015/10/10 职场文书
threejs太阳光与阴影效果实例代码
2022/04/05 Javascript