var
addressResolve =
function
(options) {
if
(!isValid(options))
return
this;
var
defaluts = {
proId: 'pProv',
cityId: 'pCity',
areaId: 'pArea'
};
var
opts =
$j
.extend({}, defaluts, options);
var
addressInfo = this;
this.provInfo =
$j
(
"#"
+ opts.proId);
this.cityInfo =
$j
(
"#"
+ opts.cityId);
this.areaInfo =
$j
(
"#"
+ opts.areaId);
this.provInfoInit =
function
() {
var
proOpts =
""
;
$j
.each(provinceJson,
function
(index, item) {
proOpts +=
"<option value='"
+ item.ProID +
"'>"
+ item.name +
"</option>"
;
});
addressInfo.provInfo.append(proOpts);
addressInfo.provInfo.chosen();
addressInfo.cityInfo.chosen();
addressInfo.areaInfo.chosen();
};
this.selectCity =
function
() {
addressInfo.cityInfo.
empty
();
addressInfo.cityInfo.append(
"<option value=选择城市>选择城市</option>"
);
addressInfo.areaInfo.
empty
();
addressInfo.areaInfo.append(
"<option value=选择区县>选择区县</option>"
);
if
(addressInfo.provInfo.val() ==
"选择省份"
) {
addressInfo.cityInfo.trigger(
"liszt:updated"
);
addressInfo.areaInfo.trigger(
"liszt:updated"
);
return
;
}
var
provId = addressInfo.provInfo.val();
var
cityOpts =
""
;
$j
.each(cityJson,
function
(index, item) {
if
(item.ProID == provId) {
cityOpts +=
"<option value='"
+ item.CityID +
"'>"
+ item.name +
"</option>"
;
}
});
addressInfo.cityInfo.append(cityOpts);
addressInfo.cityInfo.trigger(
"liszt:updated"
);
addressInfo.areaInfo.trigger(
"liszt:updated"
);
};
this.selectArea =
function
() {
if
(addressInfo.cityInfo.val() ==
"选择城市"
)
return
;
addressInfo.areaInfo.
empty
();
addressInfo.areaInfo.append(
"<option value=选择区县>选择区县</option>"
);
var
cityId = addressInfo.cityInfo.val();
var
areaOpts =
""
;
$j
.each(areaJson,
function
(index, item) {
if
(item.CityID == cityId) {
areaOpts +=
"<option value='"
+ item.Id +
"'>"
+ item.DisName +
"</option>"
;
}
});
addressInfo.areaInfo.append(areaOpts);
addressInfo.areaInfo.trigger(
"liszt:updated"
);
};
this.init =
function
() {
addressInfo.provInfo.append(
"<option value=选择省份>选择省份</option>"
);
addressInfo.cityInfo.append(
"<option value=选择城市>选择城市</option>"
);
addressInfo.areaInfo.append(
"<option value=选择区县>选择区县</option>"
);
addressInfo.provInfoInit();
addressInfo.provInfo.bind(
"change"
, addressInfo.selectCity);
addressInfo.cityInfo.bind(
"change"
, addressInfo.selectArea);
}
function
isValid(options) {
return
!options || (options && typeof options ===
"object"
) ? true : false;
}
}