<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<style type="text/css">
body {
font-size: 12px;
}
select, input {
border: 1px solid gray;
}
td {
text-align: center;
}
</style>
<script src="jquery.js"></script>
<script type="text/javascript">
$(function () {
GetRegionNext(0)
})
var regionObjId = new Array("#province", "#city", "#country", "#code");
function GetRegionNext(region_index) {
var regionObj = regionObjId[region_index];
var regionId = $(regionObj).val();
if (regionId == "") {//若为选择
clearList(region_index);///根据选择级别 清除下一级别数据
if (region_index == 0) {//若是省份选择 未选择的情况下默认0 省份级别的数据父级id为0
regionId = 0;
} else {//若是非省份 不执行获取
return false;
}
}
if (region_index == 0) {///若是第一级省份 则清除最后一个邮编
$(regionObjId[region_index + 3]).val("");
}
var regionNext = regionId == 0 ? regionObjId[region_index] : regionObjId[region_index + 1];//下一级别关联元素
if ($(regionNext + " option").length > 1) {
$(regionNext + " option[value!='']").remove();
}
$.ajax({
url: "region.js", type: "get", dataType: "json",
success: function (data) {
if (data) {
var regions = data.regions;
var regionResult = "";
var i = 0;
$.each(regions, function () {
var region_id = regions[i].region_id;
var region_name = regions[i].region_name;
var region_parent = regions[i].region_parent;
var zipcode = regions[i].zipcode;
if (region_index == 2) {
if (region_id == regionId) {
$(regionNext).val(zipcode);
return false;
}
} else {
if (region_parent == regionId) {
regionResult += "<option value=\"" + region_id + "\">" + region_name + "</option>";
}
}
i++;
})
if (regionResult != "") {
if (regionId == 0) {
$(regionNext).append(regionResult);
} else {
$(regionNext).append(regionResult);
}
}
} else {
alert("、、、数据获取失败、、、")
}
}, error: function () {
alert("///数据获取失败///")
}
})
}
///根据选择级别 清除下一级别数据
function clearList(region_index) {
if ($(regionObjId[region_index]).val() == "") {
if (region_index == 0) {
$(regionObjId[region_index + 1] + " option[value!='']").remove();
$(regionObjId[region_index + 2] + " option[value!='']").remove();
$(regionObjId[region_index + 3]).val("");
}
else if (region_index == 1) {
$(regionObjId[region_index + 1] + " option[value!='']").remove();
$(regionObjId[region_index + 2]).val("");
}
else if (region_index == 2) {
$(regionObjId[region_index + 1]).val("");
}
}
}
</script>
</head>
<body>
<table style="width: 100%">
<thead>
<tr>
<th>
</th>
<th>省份</th>
<th>城市</th>
<th>地区</th>
<th>邮编</th>
</tr>
</thead>
<tbody>
<tr>
<td>
</td>
<td>
<select id="province" οnchange="GetRegionNext(0)">
<option value="">请选择</option>
</select>
</td>
<td>
<select id="city" οnchange="GetRegionNext(1)">
<option value="">请选择</option>
</select>
</td>
<td>
<select id="country" οnchange="GetRegionNext(2)">
<option value="">请选择</option>
</select>
</td>
<td>
<input type="text" id="code" /></td>
</tr>
</tbody>
</table>
</body>
</html>
点击这里下载2014年11月更新全国省市区邮编数据region.js