您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
小编给大家分享一下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实现省市区三级联动的方法”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。