region-1.0.0.js
2.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
/* $Id : region.js 4865 2007-01-31 14:04:10Z paulgao $ */
var region = new Object();
region.isAdmin = false;
region.loadRegions = function(parent, type, target, url)
{
var param = 'type=' + type + '&target=' + target + "&parent=" + parent;
$.ajax({
url: url,
dataType: "json",
data:param,
type:"GET",
cache:false,
success:function(result){
region.response(result)
}
})
}
/* *
* 载入指定的国家下所有的省份
*
* @country integer 国家的编号
* @selName string 列表框的名称
*/
region.loadProvinces = function(country, selName, url)
{
var objName = (typeof selName == "undefined") ? "selProvinces" : selName;
region.loadRegions(country, 1, objName, url);
}
/* *
* 载入指定的省份下所有的城市
*
* @province integer 省份的编号
* @selName string 列表框的名称
*/
region.loadCities = function(province, selName, url)
{
var objName = (typeof selName == "undefined") ? "selCities" : selName;
region.loadRegions(province, 2, objName, url);
}
/* *
* 载入指定的城市下的区 / 县
*
* @city integer 城市的编号
* @selName string 列表框的名称
*/
region.loadDistricts = function(city, selName, url)
{
var objName = (typeof selName == "undefined") ? "selDistricts" : selName;
region.loadRegions(city, 3, objName, url);
}
/* *
* 处理下拉列表改变的函数
*
* @obj object 下拉列表
* @type integer 类型
* @selName string 目标列表框的名称
*/
region.changed = function(obj, type, selName, url)
{
var parent = obj.options[obj.selectedIndex].value;
region.loadRegions(parent, type, selName, url);
}
region.response = function(result)
{
var sel = document.getElementById(result.target);
sel.length = 1;
sel.selectedIndex = 0;
sel.style.display = (result.regions.length == 0 && ! region.isAdmin && result.type + 0 == 3) ? "none" : '';
if (document.all)
{
sel.fireEvent("onchange");
}
else
{
var evt = document.createEvent("HTMLEvents");
evt.initEvent('change', true, true);
sel.dispatchEvent(evt);
}
if (result.regions)
{
for (i = 0; i < result.regions.length; i ++ )
{
var opt = document.createElement("OPTION");
opt.value = result.regions[i].region_id;
opt.text = result.regions[i].region_name;
sel.options.add(opt);
}
}
}