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 相关文章推荐
jQuery 使用手册(一)
Sep 23 Javascript
使用js获取QueryString的方法小结
Feb 28 Javascript
人人网javascript面试题 可以提前实现下
Jan 05 Javascript
jQuery-onload让第一次页面加载时图片是淡入方式显示
May 23 Javascript
Jquery实现显示和隐藏的4种简单方式
Aug 28 Javascript
javascript怎么禁用浏览器后退按钮
Mar 27 Javascript
28个常用JavaScript方法集锦
Jan 14 Javascript
jQuery webuploader分片上传大文件
Nov 07 Javascript
js格式化时间的简单实例
Nov 27 Javascript
详解webpack es6 to es5支持配置
May 04 Javascript
webpack分离css单独打包的方法
Jun 12 Javascript
详解@angular/cli 改变默认启动端口两种方式
Nov 29 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 代码规范小结
2012/03/08 PHP
Yii操作数据库的3种方法
2014/03/11 PHP
PHP防止post重复提交数据的简单例子
2014/06/07 PHP
php中Session的生成机制、回收机制和存储机制探究
2014/08/19 PHP
使用XHGui来测试PHP性能的教程
2015/07/03 PHP
PHP接收json 并将接收数据插入数据库的实现代码
2015/12/01 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
php实现在站点里面添加邮件发送的功能
2020/04/28 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
2016/05/20 PHP
laravel实现一个上传图片的接口,并建立软链接,访问图片的方法
2019/10/12 PHP
学习从实践开始之jQuery插件开发 对话框插件开发
2012/04/26 Javascript
javascript避免数字计算精度误差的方法详解
2014/03/05 Javascript
Javascript获取当前日期的农历日期代码
2014/10/08 Javascript
DOM节点深度克隆函数cloneNode()用法实例
2015/01/12 Javascript
JavaScript实现把数字转换成中文
2015/06/29 Javascript
javascript生成大小写字母
2015/07/03 Javascript
基于jquery实现弹幕效果
2016/09/29 Javascript
js生成随机颜色方法代码分享(三种)
2016/12/29 Javascript
JavaScript基础之AJAX简单的小demo
2017/01/29 Javascript
详解react-router4 异步加载路由两种方法
2017/09/12 Javascript
基于JavaScript中字符串的match与replace方法(详解)
2017/12/04 Javascript
angular中两种表单的区别(响应式和模板驱动表单)
2018/12/06 Javascript
Angular6 用户自定义标签开发的实现方法
2019/01/08 Javascript
layer.open的自适应及居中及子页面标题的修改方法
2019/09/05 Javascript
微信小程序实现发微博功能的示例代码
2020/06/24 Javascript
python自动截取需要区域,进行图像识别的方法
2018/05/17 Python
Python3.6日志Logging模块简单用法示例
2018/06/14 Python
Django的CVB实例详解
2020/02/10 Python
python 常见的排序算法实现汇总
2020/08/21 Python
HTML5如何使用SVG的方法示例
2019/01/11 HTML / CSS
什么是Linux虚拟文件系统VFS
2015/08/25 面试题
大学生毕业自我鉴定范文
2014/02/03 职场文书
2014最新房贷收入证明范本
2014/09/12 职场文书
群众路线四风自我剖析材料
2014/10/08 职场文书
素质教育培训心得体会
2016/01/19 职场文书
工作汇报材料难写?方法都在这里了!
2019/07/01 职场文书