`

Jquery实现省市区联动

阅读更多

利用jquery实现从xml读取省市区信息联动插件。 
备注:代码中是读取xml/province_city.xml,视情况自行修改。

/**
 * jQuery :  省市县联动插件
 * @author   kxt
 * @example  $("#test").province_city_county();
 */
$.fn.province_city_county = function(v_province,v_city,v_county){
    var _self = this;
    //插入3个空的下拉框
    //_self.append("<select id='province' name='province'></select>");
    //_self.append("<select id='city' name='city'></select>");
    //_self.append("<select id='county' name='county'></select>");
    _self.html("<select id='province' name='province' style='width: 100px'></select>" +
            "<select id='city' name='city' style='width: 100px'></select>" +
            "<select id='county' name='county' style='width: 100px'></select>");
    //分别获取3个下拉框
    var sel1 = _self.find("select").eq(0);
    var sel2 = _self.find("select").eq(1);
    var sel3 = _self.find("select").eq(2);
    
    //定义3个默认值
    _self.data("province",["请选择", ""]);
    _self.data("city",["请选择", ""]);
    _self.data("county",["请选择", ""]);
    //默认省级下拉
    if(_self.data("province")){
        sel1.append("<option value='"+_self.data("province")[1]+"'>"+_self.data("province")[0]+"</option>");
    }
    //默认城市下拉
    if(_self.data("city")){
        sel2.append("<option value='"+_self.data("city")[1]+"'>"+_self.data("city")[0]+"</option>");
    }
    //默认县区下拉
    if(_self.data("county")){
        sel3.append("<option value='"+_self.data("county")[1]+"'>"+_self.data("county")[0]+"</option>");
    }
    $.get('js/province_city.xml', function(data){
        var arrList = [];
        $(data).find('province').each(function(){
            var $province = $(this);
            sel1.append("<option value='"+$province.attr('value')+"'>"+$province.attr('value')+"</option>");
        });
        if(typeof v_province != 'undefined'){
            sel1.val(v_province);
            sel1.change();
        }
    });
     
    //省级联动控制
    var index1 = "" ;
    var provinceValue = "";
    var cityValue = "";
    sel1.change(function(){
        //清空其它2个下拉框
        sel2[0].options.length=0;
        sel3[0].options.length=0;
        index1 = this.selectedIndex;
        if(index1 == 0){    //当选择的为 "请选择" 时
            if(_self.data("city")){
                sel2.append("<option value='"+_self.data("city")[1]+"'>"+_self.data("city")[0]+"</option>");
            }
            if(_self.data("county")){
                sel3.append("<option value='"+_self.data("county")[1]+"'>"+_self.data("county")[0]+"</option>");
            }
        } else{
            provinceValue = $('#province').val();
            $.get('js/province_city.xml', function(data){
                $(data).find("province[value='"+provinceValue+"'] > city").each(function(){
                    var $city = $(this);
                    sel2.append("<option value='"+$city.attr('value')+"'>"+$city.attr('value')+"</option>");
                });
                cityValue = $("#city").val();
                $(data).find("city[value='"+cityValue+"'] > county").each(function(){
                    var $county = $(this);
                    sel3.append("<option value='"+$county.attr('value')+"'>"+$county.attr('value')+"</option>");
                });
 
                if(typeof v_city != 'undefined'){
                    sel2.val(v_city);
                    sel2.change();
                }
 
                if(typeof v_county != 'undefined'){
                    sel3.val(v_county);
                }
            });
        }
    }).change();
    //城市联动控制
    sel2.change(function(){
        sel3[0].options.length=0;
        var cityValue2 = $('#city').val();
        $.get('js/province_city.xml', function(data){
            $(data).find("city[value='"+cityValue2+"'] > county").each(function(){
                var $county = $(this);
                sel3.append("<option value='"+$county.attr('value')+"'>"+$county.attr('value')+"</option>");
            });
            if(typeof v_county != 'undefined'){
                sel3.val(v_county);
            }
        });
    }).change();
    return _self;
};

  

分享到:
评论

相关推荐

    Jquery实现省市区/县三级联动的Javascript脚本

    Jquery实现省市区/县三级联动的Javascript脚本

    Jquery实现省市区三级联动多选.zip

    "Jquery实现省市区三级联动多选"是一个典型的前端技术应用,它解决了传统二级联动或三级联动一对一模式的问题,引入了多选功能,使得用户在选择省市区时可以有更大的自由度。 一、jQuery简介 jQuery是一个快速、...

    jQuery 省市区联动

    总之,jQuery结合JSON可以轻松实现省市区联动功能,这在网页表单设计中非常实用。理解其工作原理并熟练运用,能提升网页的交互性和用户体验。通过不断实践和优化,你可以创建更加智能、高效的联动效果。

    省市区联动jquery插件

    标题中的“省市区联动jquery插件”是指一种用于网页开发的工具,主要用于处理用户在选择省份时,自动更新对应的市和区的选择项,以实现这三个级别行政区划的联动效果。这种插件通常能够提高用户体验,简化用户在填写...

    jQuery移动端省市区联动代码.zip

    在这个名为"jQuery移动端省市区联动代码.zip"的压缩包中,包含了一个使用jQuery库实现的移动端解决方案。 jQuery是一款广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画效果以及Ajax交互等任务。在这个...

    jquery 实现省市区三级联动

    在网页开发中,省市区三级联动...总的来说,jQuery实现省市区三级联动涉及到JSON数据处理、DOM操作、事件监听、Ajax请求等多个技术点,通过合理组合这些技术,我们可以创建一个响应迅速、交互流畅的地理位置选择功能。

    jQuery json省市区街道四级联动地址选择插件.zip

    这款插件利用jQuery库和JSON数据格式,实现了在下拉菜单中动态加载并联动展示省市区街道的层次结构,让用户在选择地址时更加方便快捷。 首先,我们来看标题中的关键点——"jQuery json"。jQuery是一个广泛使用的...

    PHP+JQUERY全国省市区联动

    在这个项目中,JQUERY用于实现前端的省市区联动效果。通过监听用户在选择框中的变化事件,发送Ajax请求到PHP API,获取并更新下一级别的选择框选项。同时,JQUERY的动画功能可以为用户体验增加亮点,比如在数据加载...

    jQuery实现全国省市区城市三级联动代码

    在实现省市区联动时,我们主要利用jQuery的事件绑定和AJAX技术来动态加载数据。 首先,我们需要一个HTML结构,包含三个下拉框,分别用于选择省份、城市和区县。每个下拉框的`onChange`事件需要触发相应的加载操作,...

    jquery实现省市县三级联动

    在网页开发中,"jQuery 实现省市县三级联动"是一个常见的功能需求,尤其在构建具有地理定位信息的网站或应用时。这个功能允许用户在选择省份后,市和县(或区)的下拉列表会自动更新,显示出与之相关的选项,提供了...

    jQuery json省市区街道四级联动地址选择插件

    **jQuery JSON 省市区街道四级联动地址选择插件** 在网页开发中,尤其是在电子商务网站或者需要用户填写详细地址的应用中,四级联动地址选择插件是一个常见且实用的功能。它通常包括省、市、区(县)和街道四个级别...

    前端实现省市区三级联动(jquery+json)

    在前端开发中,省市区三级联动是一种常见的交互设计,...以上就是使用jQuery、js和json实现省市区三级联动的基本原理和流程。这种技术在电商、物流、O2O服务等领域非常常见,提高了用户在填写地址时的便捷性和准确性。

    jsp结合jquery实现省市区三级联动下拉(含数据库脚本) .rar

    jsp结合jquery实现省市区三级联动下拉。不少系统都需要实现省市区三级联动下拉,像人口信息管理、电子商务网站、会员管理等,都需要填写地址相关信息。而用ajax实现的无刷新省市区三级联动下拉则可以改善用户体验,...

    php+mysql+jquery省市区三级联动

    本项目“php+mysql+jquery省市区三级联动”是实现这一功能的一个实例,结合了后端PHP、数据库MySQL以及前端jQuery技术,提供了一个完整的解决方案。 首先,我们来看前端部分,这里使用的是jQuery库。jQuery是一个...

    jquery 省市二级联动

    一段很简单的代码实现的全国二级城市联动选择效果 代码部分很简单,看过即会使用 主要字段内容在city.data.js中,如果需要修改城市名称,到里面找到对应的文字修改,或者添加即可

    前端jquery+后端servlet实现三级联动项目省市区

    这个项目“前端jquery+后端servlet实现三级联动项目省市区”就是一个典型的案例,它展示了如何利用jQuery在前端处理用户交互,以及如何通过Servlet在后端进行数据处理和传输。下面我们将详细探讨这个项目中的关键...

    Bootstrap实现省市区三级联动(亲测可用)

    在实现省市区三级联动功能中,Bootstrap框架能够提供基本的样式支持和组件交互。例如,使用Bootstrap的`&lt;select&gt;`下拉列表组件来构建选择框,并通过JavaScript来动态填充省、市、区的数据。Bootstrap的`.form-...

    jQuery移动端省市二级联动选择插件.zip

    此插件基于jQuery,利用其强大的DOM操作和事件处理能力,实现了省市联动效果。当用户在省的选择项中做出选择时,插件会动态加载并更新市的选择项,这种实时同步的行为是通过监听省选择器的改变事件来实现的。这展示...

    Ajax+jQuery实现省市区三级联动功能

    在网页开发中,"Ajax+jQuery实现省市区三级联动功能"是一个常见的需求,尤其是在构建具有交互性和动态更新的用户界面时。这个功能的核心是通过Ajax技术异步获取数据,并使用jQuery库来处理DOM操作和事件监听,使得...

Global site tag (gtag.js) - Google Analytics