85 lines
45 KiB
JavaScript
85 lines
45 KiB
JavaScript
![]() |
/********************************************************
|
|||
|
*** 加载脚本文件 ***
|
|||
|
<script src="pcasunzip.js"></script>
|
|||
|
|
|||
|
*** 省市联动 ***
|
|||
|
new PCAS("Province","City")
|
|||
|
new PCAS("Province","City","吉林省")
|
|||
|
new PCAS("Province","City","吉林省","吉林市")
|
|||
|
|
|||
|
*** 省市区联动 ***
|
|||
|
new PCAS("Province","City","Area")
|
|||
|
new PCAS("Province","City","Area","吉林省")
|
|||
|
new PCAS("Province","City","Area","吉林省","松原市")
|
|||
|
new PCAS("Province","City","Area","吉林省","松原市","宁江区")
|
|||
|
|
|||
|
省、市、地区对象取得的值均为实际值。
|
|||
|
注:省、市、地区提示信息选项的值为""(空字符串)
|
|||
|
*********************************************************/
|
|||
|
|
|||
|
SPT = window.SPT || "-省份-";
|
|||
|
SCT = window.SCT || "-城市-";
|
|||
|
SAT = window.SAT || "-地区-";
|
|||
|
SWT = window.SWT || 0; // 提示文字 0:不显示 1:显示
|
|||
|
|
|||
|
function PCAS() {
|
|||
|
this.SelP = document.getElementsByName(arguments[0])[0];
|
|||
|
this.SelC = document.getElementsByName(arguments[1])[0];
|
|||
|
this.SelA = document.getElementsByName(arguments[2])[0];
|
|||
|
this.DefP = this.SelA ? arguments[3] : arguments[2];
|
|||
|
this.DefC = this.SelA ? arguments[4] : arguments[3];
|
|||
|
this.DefA = this.SelA ? arguments[5] : arguments[4];
|
|||
|
if (this.SelP) this.SelP.PCA = this;
|
|||
|
if (this.SelC) this.SelC.PCA = this;
|
|||
|
if (this.SelA) this.SelA.PCA = this;
|
|||
|
if (this.SelP && this.SelC) {
|
|||
|
this.SelP.onchange = function () {
|
|||
|
PCAS.SetC(this.PCA)
|
|||
|
};
|
|||
|
if (this.SelA) this.SelC.onchange = function () {
|
|||
|
PCAS.SetA(this.PCA)
|
|||
|
};
|
|||
|
}
|
|||
|
PCAS.init(this).SetP(this)
|
|||
|
}
|
|||
|
|
|||
|
PCAS.init = function (PCA) {
|
|||
|
PCA.PCAP = [], PCA.PCAC = [], PCA.PCAA = [], PCA.PCAD = "北京市$北京市,东城区,西城区,朝阳区,丰台区,石景山区,海淀区,门头沟区,房山区,通州区,顺义区,昌平区,大兴区,怀柔区,平谷区,密云区,延庆区#天津市$天津市,和平区,河东区,河西区,南开区,河北区,红桥区,东丽区,西青区,津南区,北辰区,武清区,宝坻区,滨海新区,宁河区,静海区,蓟州区#河北省$石家庄市,长安区,桥西区,新华区,井陉矿区,裕华区,藁城区,鹿泉区,栾城区,井陉县,正定县,行唐县,灵寿县,高邑县,深泽县,赞皇县,无极县,平山县,元氏县,赵县,辛集市,晋州市,新乐市|唐山市,路南区,路北区,古冶区,开平区,丰南区,丰润区,曹妃甸区,滦南县,乐亭县,迁西县,玉田县,遵化市,迁安市,滦州市|秦皇岛市,海港区,山海关区,北戴河区,抚宁区,青龙满族自治县,昌黎县,卢龙县|邯郸市,邯山区,丛台区,复兴区,峰峰矿区,肥乡区,永年区,临漳县,成安县,大名县,涉县,磁县,邱县,鸡泽县,广平县,馆陶县,魏县,曲周县,武安市|邢台市,襄都区,信都区,任泽区,南和区,临城县,内丘县,柏乡县,隆尧县,宁晋县,巨鹿县,新河县,广宗县,平乡县,威县,清河县,临西县,南宫市,沙河市|保定市,竞秀区,莲池区,满城区,清苑区,徐水区,涞水县,阜平县,定兴县,唐县,高阳县,涞源县,望都县,易县,曲阳县,蠡县,顺平县,博野县,涿州市,定州市,安国市,高碑店市|张家口市,桥东区,桥西区,宣化区,下花园区,万全区,崇礼区,张北县,康保县,沽源县,尚义县,蔚县,阳原县,怀安县,怀来县,涿鹿县,赤城县|承德市,双桥区,双滦区,鹰手营子矿区,承德县,兴隆县,滦平县,隆化县,丰宁满族自治县,宽城满族自治县,围场满族蒙古族自治县,平泉市|沧州市,新华区,运河区,沧县,青县,东光县,海兴县,盐山县,肃宁县,南皮县,吴桥县,献县,孟村回族自治县,泊头市,任丘市,黄骅市,河间市|廊坊市,安次区,广阳区,固安县,永清县,香河县,大城县,文安县,大厂回族自治县,霸州市,三河市|衡水市,桃城区,冀州区,枣强县,武邑县,武强县,饶阳县,安平县,故城县,景县,阜城县,深州市|雄安新区,容城县,安新县,雄县#山西省$太原市,小店区,迎泽区,杏花岭区,尖草坪区,万柏林区,晋源区,清徐县,阳曲县,娄烦县,古交市|大同市,新荣区,平城区,云冈区,云州区,阳高县,天镇县,广灵县,灵丘县,浑源县,左云县|阳泉市,城区,矿区,郊区,平定县,盂县|长治市,潞州区,上党区,屯留区,潞城区,襄垣县,平顺县,黎城县,壶关县,长子县,武乡县,沁县,沁源县|晋城市,城区,沁水县,阳城县,陵川县,泽州县,高平市|朔州市,朔城区,平鲁区,山阴县,应县,右玉县,怀仁市|晋中市,榆次区,太谷区,榆社县,左权县,和顺县,昔阳县,寿阳县,祁县,平遥县,灵石县,介休市|运城市,盐湖区,临猗县,万荣县,闻喜县,稷山县,新绛县,绛县,垣曲县,夏县,平陆县,芮城县,永济市,河津市|忻州市,忻府区,定襄县,五台县,代县,繁峙县,宁武县,静乐县,神池县,五寨县,岢岚县,河曲县,保德县,偏关县,原平市|临汾市,尧都区,曲沃县,翼城县,襄汾县,洪洞县,古县,安泽县,浮山县,吉县,乡宁县,大宁县,隰县,永和县,蒲县,汾西县,侯马市,霍州市|吕梁市,离石区,文水县,交城县,兴县,临县,柳林县,石楼县,岚县,方山县,中阳县,交口县,孝义市,汾阳市#内蒙古自治区$呼和浩特市,新城区,回民区,玉泉区,赛罕区,土默特左旗,托克托县,和林格尔县,清水河县,武川县|包头市,东河区,昆都仑区,青山区,石拐区,白云鄂博矿区,九原区,土默特右旗,固阳县,达尔罕茂明安联合旗|乌海市,海勃湾区,海南区,乌达区|赤峰市,红山区,元宝山区,松山区,阿鲁科尔沁旗,巴林左旗,巴林右旗,林西县,克什克腾旗,翁牛特旗,喀喇沁旗,宁城县,敖汉旗|通辽市,科尔沁区,科尔沁左翼中旗,科尔沁左翼
|
|||
|
if (SWT) PCA.PCAD = SPT + "$" + SCT + "," + SAT + "#" + PCA.PCAD;
|
|||
|
PCA.PCAD.split("#").forEach(function (VAL1, ID1) {
|
|||
|
PCA.PCAP[ID1] = VAL1.split("$")[0], PCA.PCAC[ID1] = [], PCA.PCAA[ID1] = [];
|
|||
|
VAL1.split("$")[1].split("|").forEach(function (VAL2, ID2) {
|
|||
|
PCA.PCAC[ID1].push((PCA.PCAR = VAL2.split(",")).shift()), PCA.PCAA[ID1][ID2] = PCA.PCAR;
|
|||
|
});
|
|||
|
});
|
|||
|
return this;
|
|||
|
};
|
|||
|
|
|||
|
PCAS.SetP = function (PCA) {
|
|||
|
PCA.PCAP.forEach(function (VAL, IDX) {
|
|||
|
PCA.PCAT = PCA.PCAV = VAL;
|
|||
|
if (PCA.PCAT === SPT) PCA.PCAV = "";
|
|||
|
PCA.SelP.options.add(new Option(PCA.PCAT, PCA.PCAV));
|
|||
|
if (PCA.DefP === PCA.PCAV) PCA.SelP[IDX].selected = true
|
|||
|
}), PCA.SelC ? PCAS.SetC(PCA) : $(PCA.SelP).trigger('change');
|
|||
|
};
|
|||
|
|
|||
|
PCAS.SetC = function (PCA) {
|
|||
|
PCA.SelC.length = 0;
|
|||
|
PCA.PCAC[PCA.SelP.selectedIndex].forEach(function (VAL, IDX) {
|
|||
|
PCA.PCAT = PCA.PCAV = VAL;
|
|||
|
if (PCA.PCAT === SCT) PCA.PCAV = "";
|
|||
|
PCA.SelC.options.add(new Option(PCA.PCAT, PCA.PCAV));
|
|||
|
if (PCA.DefC === PCA.PCAV) PCA.SelC[IDX].selected = true
|
|||
|
}), PCA.SelA ? PCAS.SetA(PCA) : $(PCA.SelC).trigger('change');
|
|||
|
};
|
|||
|
|
|||
|
PCAS.SetA = function (PCA) {
|
|||
|
PCA.SelA.length = 0;
|
|||
|
PCA.PCAA[PCA.SelP.selectedIndex][PCA.SelC.selectedIndex].forEach(function (VAL, IDX) {
|
|||
|
PCA.PCAT = PCA.PCAV = VAL;
|
|||
|
if (PCA.PCAT === SAT) PCA.PCAV = "";
|
|||
|
PCA.SelA.options.add(new Option(PCA.PCAT, PCA.PCAV));
|
|||
|
if (PCA.DefA === PCA.PCAV) PCA.SelA[IDX].selected = true
|
|||
|
}), $(PCA.SelA).trigger('change')
|
|||
|
};
|