全国省份城市二级联动 jquery插件

(function($) {
	$.cityUI = function(opt) {
		install(window , opt) ;
	} ;
	$.cityUI.defaults = {
			provinceId : 'provinceId' ,
			cityId : 'cityId' ,
			selectProvince : '请选择省份' , 
			selectCity : '请选择城市' , 
			provinceInit : '' ,
			cityInit : '' 
	} ;
	
	function install(window , opt) {
		var _opt = $.extend($.cityUI.defaults , opt) ;
		
		init(_opt) ;
		
		$('#' + _opt.provinceId ).change(function(){
			//console.log('hello');
			refreshCity($(this).val() , _opt) ;
		});
	}
	
	function init(opt) {
		var selectProvince = $('#' + opt.provinceId ) ; 
		var selectCity = $('#' + opt.cityId) ; 
		selectProvince.empty() ;
		selectCity.empty();
		selectProvince.append('<option value="none">' + opt.selectProvince + '</option>');
		selectCity.append('<option value="none">' +opt.selectCity  + '</option>') ;
		
		var provinces = getProvinces() ;
		
		for(var i = 0 , length = provinces.length ; i < length ; i += 1) {
			if(opt.provinceInit == provinces[i]){
				selectProvince.append('<option value="' + provinces[i] + '" selected="selected">' + provinces[i] + '</option>') ;
			} else {
				selectProvince.append('<option value="' + provinces[i] + '">' + provinces[i] + '</option>') ;
			}
		}
		
		if(opt.provinceInit){
			refreshCity(opt.provinceInit , opt);
		}
	}
	
	function getProvinces(){
		var provinces = new Array() ;
		for(var i = 0 , length = _citis.length ; i < length ; i += 1) {
			provinces.push(_citis[i][0]) ;
		}
		return provinces; 
	}
	
	function getCitis(province) {
		for(var i = 0 , length = _citis.length ; i < length ; i += 1) {
			if(province == _citis[i][0]){
				return _citis[i].slice(1) ;
			}
		}
	}
	
	function refreshCity(province , opt) {
		var citis = getCitis(province) ;
		var selectCity = $('#' + opt.cityId) ;
		selectCity.empty();
		selectCity.append('<option value="none">' +opt.selectCity  + '</option>') ;
		if(citis){
			for(var i = 0 , length = citis.length ; i < length ; i += 1) {
				if(opt.cityInit == citis[i]){
					selectCity.append('<option value="' + citis[i] + '" selected="selected">' + citis[i] + '</option>') ;
				} else {
					selectCity.append('<option value="' + citis[i] + '">' + citis[i] + '</option>') ;
				}
			}
		}
	}
	
		var _citis = [
			[ "安徽省", "合肥市", "芜湖市", "蚌埠市", "淮南市", "马鞍山市", "淮北市", "铜陵市", "安庆市",
					"黄山市", "滁州市", "阜阳市", "宿州市", "巢湖市", "六安市", "亳州市", "池州市",
					"宣城市" ],
			[ "北京市", "北京市" ],
			[ "重庆市", "重庆市" ],
			[ "福建省", "福州市", "厦门市", "莆田市", "三明市", "泉州市", "漳州市", "南平市", "龙岩市",
					"宁德市" ],
			[ "广东省", "广州市", "韶关市", "深圳市", "珠海市", "汕头市", "佛山市", "江门市", "湛江市",
					"茂名市", "肇庆市", "惠州市", "梅州市", "汕尾市", "河源市", "阳江市", "清远市",
					"东莞市", "中山市", "潮州市", "揭阳市", "云浮市" ],
			[ "广西壮族自治区", "南宁市", "柳州市", "桂林市", "梧州市", "北海市", "防城港市", "钦州市",
					"贵港市", "玉林市", "百色市", "贺州市", "河池市", "来宾市", "崇左市" ],
			[ "甘肃省", "兰州市", "嘉峪关市", "金昌市", "白银市", "天水市", "武威市", "张掖市", "平凉市",
					"酒泉市", "庆阳市", "定西市", "陇南市", "临夏回族自治州", "甘南藏族自治州" ],
			[ "贵州省", "贵阳市", "六盘水市", "遵义市", "安顺市", "铜仁地区", "黔西南布依族苗族自治州",
					"毕节地区", "黔东南苗族侗族自治州", "黔南布依族苗族自治州" ],
			[ "河北省", "石家庄市", "唐山市", "秦皇岛市", "邯郸市", "邢台市", "保定市", "张家口市", "承德市",
					"沧州市", "廊坊市" ],
			[ "湖北省", "武汉市", "黄石市", "十堰市", "宜昌市", "襄樊市", "鄂州市", "荆门市", "孝感市",
					"荆州市", "黄冈市", "咸宁市", "随州市", "恩施土家族苗族自治州", "仙桃市", "潜江市",
					"天门市", "神农架林区" ],
			[ "黑龙江省", "哈尔滨市", "齐齐哈尔市", "鸡西市", "鹤岗市", "双鸭山市", "大庆市", "伊春市",
					"佳木斯市", "七台河市", "牡丹江市", "绥化市", "大兴安岭地区" ],
			[ "河南省", "郑州市", "开封市", "洛阳市", "平顶山市", "安阳市", "鹤壁市", "新乡市", "焦作市",
					"濮阳市", "许昌市", "漯河市", "三门峡市", "南阳市", "商丘市", "信阳市", "周口市",
					"驻马店市", "济源市" ],
			[ "湖南省", "长沙市", "株洲市", "湘潭市", "衡阳市", "邵阳市", "岳阳市", "常德市", "张家界市",
					"益阳市", "郴州市", "永州市", "怀化市", "娄底市", "湘西土家族苗族自治州" ],
			[ "海南省", "海口市", "三亚市", "五指山市", "琼海市", "儋州市", "文昌市", "万宁市", "东方市",
					"定安县", "屯昌县", "澄迈县", "临高县", "白沙黎族自治县", "昌江黎族自治县",
					"乐东黎族自治县", "陵水黎族自治县", "保亭黎族苗族自治县", "琼中黎族苗族自治县", "西沙群岛",
					"南沙群岛", "中沙群岛的岛礁及其海域" ],
			[ "吉林省", "长春市", "吉林市", "四平市", "辽源市", "通化市", "白山市", "松原市", "白城市",
					"延边朝鲜族自治州" ],
			[ "江苏省", "南京市", "无锡市", "徐州市", "常州市", "苏州市", "南通市", "连云港市", "淮安市",
					"盐城市", "扬州市", "镇江市", "泰州市", "宿迁市" ],
			[ "江西省", "南昌市", "景德镇市", "萍乡市", "九江市", "新余市", "鹰潭市", "赣州市", "吉安市",
					"宜春市", "抚州市", "上饶市" ],
			[ "辽宁省", "沈阳市", "大连市", "鞍山市", "抚顺市", "本溪市", "丹东市", "锦州市", "营口市",
					"阜新市", "辽阳市", "盘锦市", "铁岭市", "朝阳市", "葫芦岛市" ],
			[ "内蒙古自治区", "呼和浩特市", "包头市", "乌海市", "赤峰市", "通辽市", "鄂尔多斯市", "呼伦贝尔市",
					"巴彦淖尔市", "乌兰察布市", "兴安盟", "锡林郭勒盟", "阿拉善盟" ],
			[ "宁夏回族自治区", "银川市", "石嘴山市", "吴忠市", "固原市", "中卫市" ],
			[ "青海省", "西宁市", "海东地区", "海北藏族自治州", "黄南藏族自治州", "海南藏族自治州", "果洛藏族自治州",
					"玉树藏族自治州", "海西蒙古族藏族自治州" ],
			[ "上海市", "上海市" ],
			[ "四川省", "成都市", "自贡市", "攀枝花市", "泸州市", "德阳市", "绵阳市", "广元市", "遂宁市",
					"内江市", "乐山市", "南充市", "眉山市", "宜宾市", "广安市", "达州市", "雅安市",
					"巴中市", "资阳市", "阿坝藏族羌族自治州", "甘孜藏族自治州", "凉山彝族自治州" ],
			[ "山东省", "济南市", "青岛市", "淄博市", "枣庄市", "东营市", "烟台市", "潍坊市", "济宁市",
					"泰安市", "威海市", "日照市", "莱芜市", "临沂市", "德州市", "聊城市", "滨州市",
					"菏泽市" ],
			[ "山西省", "太原市", "大同市", "阳泉市", "长治市", "晋城市", "朔州市", "晋中市", "运城市",
					"忻州市", "临汾市", "吕梁市" ],
			[ "陕西省", "西安市", "铜川市", "宝鸡市", "咸阳市", "渭南市", "延安市", "汉中市", "榆林市",
					"安康市", "商洛市" ],
			[ "天津市", "天津市" ],
			[ "台湾省", "台北市", "高雄市", "基隆市", "新竹市", "台中市", "嘉义市", "台南市", "台北县",
					"宜兰县", "桃园县", "新竹县", "苗栗县", "台中县", "彰化县", "南投县", "云林县",
					"嘉义县", "台南县", "高雄县", "屏东县", "台东县", "花莲县", "澎湖县" ],
			[ "特别行政区", "香港特别行政区", "澳门特别行政区" ],
			[ "西藏自治区", "拉萨市", "昌都地区", "山南地区", "日喀则地区", "那曲地区", "阿里地区", "林芝地区" ],
			[ "新疆维吾尔自治区", "乌鲁木齐市", "克拉玛依市", "吐鲁番地区", "哈密地区", "昌吉回族自治州",
					"博尔塔拉蒙古自治州", "巴音郭楞蒙古自治州", "阿克苏地区", "克孜勒苏柯尔克孜自治州", "喀什地区",
					"和田地区", "伊犁哈萨克自治州", "塔城地区", "阿勒泰地区", "石河子市", "阿拉尔市",
					"图木舒克市", "五家渠市" ],
			[ "云南省", "昆明市", "曲靖市", "玉溪市", "保山市", "昭通市", "丽江市", "普洱市", "临沧市",
					"楚雄彝族自治州", "红河哈尼族彝族自治州", "文山壮族苗族自治州", "西双版纳傣族自治州",
					"大理白族自治州", "德宏傣族景颇族自治州", "怒江傈僳族自治州", "迪庆藏族自治州" ],
			[ "浙江省", "杭州市", "宁波市", "温州市", "嘉兴市", "湖州市", "绍兴市", "金华市", "衢州市",
					"舟山市", "台州市", "丽水市" ] ];
})(jQuery)

转载于:https://my.oschina.net/u/591938/blog/87254

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值