省市二级联动--使用app-jquery-cityselect.js插件

 只有省市二级联动,三级联动还没处理好,会尽快完善。

 嵌入id:

<div class="form-group">
     <label>地址</label>
     <p>从:</p>
        <div class="input-group">
           <input id="areaIdFrom" name="areaIdFrom" type="hidden" value="" /> 
<input id="provinceFrom" name="provinceFrom" type="hidden" />
<
input id="cityFrom" name="cityFrom" type="hidden" /> <div id="areaGroupFrom"></div> </div> <input type="text" class="form-control" name="addressFrom"/> <p>到:</p> <div class="input-group"> <input id="areaIdTo" name="areaId" type="hidden" value="" />
<input id="provinceTo" name="province" type="hidden" />
<
input id="cityTo" name="city" id="moveCity" type="hidden" /> <div id="areaGroupTo"></div> </div> <input type="text" class="form-control" name="address" id="moveAddress"/> </div>

编写js:

<script type="text/javascript">
    var areaIdFrom = $("#areaIdFrom");
    var provinceFrom = $("#provinceFrom");
    var cityFrom = $("#cityFrom");

    var areaIdTo = $("#areaIdTo");
    var provinceTo = $("#provinceTo");
    var cityTo = $("#cityTo");

    $("#areaGroupFrom").cityselect({
        loadProvince: handleLoadProvince,
        loadCity: handleLoadCity,
        onAreaIdChanged: function(id) {
            areaIdFrom.val(id);
        },
        onProvinceChanged: function(id, name) {
            provinceFrom.val(name);
        },
        onCityChanged: function(id, name) {
            cityFrom.val(name);
        }
    });
    $("#areaGroupTo").cityselect({
        loadProvince: handleLoadProvince,
        loadCity: handleLoadCity,
        onAreaIdChanged: function(id) {
            areaIdTo.val(id);
        },
        onProvinceChanged: function(id, name) {
            provinceTo.val(name);
        },
        onCityChanged: function(id, name) {
            cityTo.val(name);
        }
    });
   function handleLoadProvince() {
        var list = [];
        $.HTTP.list({
            url: "${aapi}/area/province", //${aapi}/area/province
            success: function(l) {
                list = l;
            }
        });
        return list;
    }

    function handleLoadCity(provinceId) {
        var list = [];
        $.HTTP.list({
            url: "${aapi}/area/city/" + provinceId, //  ${aapi}/area/city/
            success: function(l) {
                list = l;
            }
        });
        return list;
    }

</script>

 

加载省份数据:${aapi}/area/province

 

 加载省份为内蒙古的地级市数据:${aapi}/area/city/" + provinceId(传入内蒙古的id)

 

 请求成功后的效果如下图

 

转载于:https://www.cnblogs.com/cryst/p/6031185.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
省市区乡镇四级联动插件 `element-china-area-data` 是基于 Vue.js 的组件库 Element Plus 提供的一个功能,用于在用户界面中展示并选择中国的行政区划数据。它可以帮助开发者快速集成一套完整、易于使用的地址输入控件。 ### 安装 首先你需要安装 `element-china-area-data` 插件到你的项目中。可以通过 npm 或者 yarn 进行安装: ```bash npm install element-china-area-data --save # 或者 yarn add element-china-area-data ``` ### 引入与配置 引入 `element-china-area-data` 到你的 Vue 组件,并进行基本配置。通常你会在主组件文件中引入这个插件: ```javascript import { AreaSelect } from 'element-china-area-data'; ``` 然后,在你的 Vue 实例或组件模板中添加 `<el-area-select>` 标签,并通过 `props` 或 `data` 属性配置初始值等信息。 ### 使用示例 假设你想创建一个允许用户选择省份、城市、区县直至乡镇的下拉列表,可以这样设置: ```html <template> <div id="app"> <el-area-select v-model="selectedArea" placeholder="请选择地区"></el-area-select> </div> </template> <script> export default { data() { return { selectedArea: null, }; }, }; </script> ``` 这里,`v-model` 控制了选定的区域值,当用户从下拉菜单中选择区域时,选定的值会更新到 `selectedArea` 中。 ### 配置选项 你可以自定义 `el-area-select` 组件的行为和样式,例如设置默认展开层级或提供预设的选择项: ```html <el-area-select v-model="selectedArea" placeholder="请选择地区" @change="handleAreaChange"></el-area-select> ``` 同时在 JavaScript 文件中添加事件处理函数: ```javascript methods: { handleAreaChange(value) { console.log('Selected area:', value); } } ``` 这将监听每次选择变化,并在控制台打印出已选中的区域。 ### 动态配置 如果需要动态改变区域显示的数据(比如根据其他条件筛选),可以利用插件提供的 API 来获取或设置数据源: ```javascript const areas = await getAreas(); this.$refs.areaSelect.setOptions(areas); ``` ### 扩展功能 为了增强用户体验,你还可以结合 Element Plus 其他组件(如按钮、表单元素等)以及自定义样式来构建复杂的界面。此外,针对国际化需求,你可以在获取数据时考虑加载对应地区的语言翻译。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值