js城市联动选择器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js城市联动选择器相关的知识,希望对你有一定的参考价值。

<html>
<head>
<META charset="utf8">
<script type="text/javascript" src="http://code.jquery.com/jquery.js"></script>
<script>
(function($) {
    $.fn.areaSelInit = function() {
        return $(this).html("<option>请选择</option>");
    };
    $.area = function(data,sel) {
        /** 初始化 **/
        $("#province").areaSelInit();
        $("#city").areaSelInit();
        $("#county").areaSelInit();
        /** 选中特定值 **/
        $.each(data, function(p,x) {
            var s1 = ‘‘;
            if(undefined!=sel){
                s1 = (p==sel[0]) ? ‘selected‘ : ‘‘;
            }
            $("#province").append("<option "+s1+">" + p + "</option>"); // 省
            
            if(undefined!=sel){
                if ($("#province option:selected").text()==p) {
                    $.each(x,function(c,cx){
                        var s2 = ‘‘;
                        s2 = (c==sel[1]) ? ‘selected‘ : ‘‘;
                        $("#city").append("<option "+s2+">" + c + "</option>"); // 市
                    
                        if ($("#city option:selected").text()==c) {
                            $.each(cx.split(","),function(){
                                var s3 = ‘‘;
                                s3 = (this==sel[2]) ? ‘selected‘ : ‘‘;
                                $("#county").append("<option "+s3+">" + this + "</option>"); // 区
                            });
                        }
                    
                    });
                }
            }
        });
        /** onchange事件 **/
        $("#province").change(function() {
            $("#city").areaSelInit();
            $("#county").areaSelInit();
            $.each(data, function(p, x) {
                if ($("#province option:selected").text() == p) {
                    $.each(x, function(c, cx) {
                        $("#city").append("<option>" + c + "</option>"); // 市
                    });

                    $("#city").bind("change", function() {
                        $("#county").areaSelInit();
                        $.each(x, function(c, cx) {
                            if ($("#city option:selected").text() == c) {
                                $.each(cx.split(","), function() {
                                    $("#county").append("<option>" + this + "</option>"); // 区
                                });
                            }
                        });
                    });
                }
            });
        });
    };
})(jQuery);
$(function() {
    var data = {北京: {北京: "东城,西城,海淀,宣武,丰台"
            },
            江苏: {南京: "江宁,六合,下关,浦口",
                无锡: "北塘,滨湖,江阴,宜兴"
            },
            广东: {广州: "越秀区,东山区,海珠区,荔湾区,天河区,白云区,黄埔区,芳村区,番禺区,花都区,增城市,从化市",
                揭阳: "榕城区,揭东县,揭西县,普宁市"
            }
        };
    var sel = [‘广东‘,‘揭阳‘]; // 或: var sel = [];
    $.area(data,sel);
});
</script>
</head>
<body>
    <select id="province"><option>请选择</option></select>
    <select id="city"><option>请选择</option></select>
    <select id="county"><option>请选择</option></select>
</body>
</html>

  

 

 

 

 

 

;

以上是关于js城市联动选择器的主要内容,如果未能解决你的问题,请参考以下文章

js之select标签---省市联动小例子

织梦自定义表单用js代替联动地区解决联动地区选择

bootstrap-select.js 怎么联动改变,例如:省份,城市二级联动。

基于Android-PickerView的三级联动城市选择器使用

Element-ui(Cascader 级联选择器)实现三级联动

使用jquery.cityselect插件选择省,市,区联动