123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- /**
- * @name jQuery Cascdejs plugin
- * @author zdy
- * @version 1.0
- */
-
- //首先需要初始化
- var xmlDoc;
- var TopnodeList;
- var citys;
- var countyNodes;
- var nodeindex = 0;
- var childnodeindex = 0;
- //获取xml文件
- function cascdeInit(v1,v2,v3) {
- //打开xlmdocm文档
- xmlDoc = loadXmlFile('./resource/components/area/Area.xml');
- var dropElement1 = document.getElementById("sel-provance");
- var dropElement2 = document.getElementById("sel-city");
- var dropElement3 = document.getElementById("sel-area");
- RemoveDropDownList(dropElement1);
- RemoveDropDownList(dropElement2);
- RemoveDropDownList(dropElement3);
- if (window.ActiveXObject) {
- TopnodeList = xmlDoc.selectSingleNode("address").childNodes;
- }
- else {
- TopnodeList = xmlDoc.childNodes[0].getElementsByTagName("province");
- }
- if (TopnodeList.length > 0) {
- //省份列表
- var county;
- var province;
- var city;
- for (var i = 0; i < TopnodeList.length; i++) {
- //添加列表项目
- county = TopnodeList[i];
- var option = document.createElement("option");
- option.value = county.getAttribute("name");
- option.text = county.getAttribute("name");
- if (v1 == option.value) {
- option.selected = true;
- nodeindex = i;
- }
- dropElement1.add(option);
- }
- if (TopnodeList.length > 0) {
- //城市列表
- citys = TopnodeList[nodeindex].getElementsByTagName("city")
- for (var i = 0; i < citys.length; i++) {
- var id = dropElement1.options[nodeindex].value;
- //默认为第一个省份的城市
- province = TopnodeList[nodeindex].getElementsByTagName("city");
- var option = document.createElement("option");
- option.value = province[i] .getAttribute("name");
- option.text = province[i].getAttribute("name");
- if (v2 == option.value) {
- option.selected = true;
- childnodeindex = i;
- }
- dropElement2.add(option);
- }
- selectcounty(v3);
- }
- }
- }
-
- /*
- //依据省设置城市,县
- */
- function selectCity() {
- var dropElement1 = document.getElementById("sel-provance");
- var name = dropElement1.options[dropElement1.selectedIndex].value;
- countyNodes = TopnodeList[dropElement1.selectedIndex];
- var province = document.getElementById("sel-city");
- var city = document.getElementById("sel-area");
- RemoveDropDownList(province);
- RemoveDropDownList(city);
- var citynodes;
- var countycodes;
- if (window.ActiveXObject) {
- citynodes = xmlDoc.selectSingleNode('//address/province [@name="' + name + '"]').childNodes;
- } else {
- citynodes = countyNodes.getElementsByTagName("city")
- }
- if (window.ActiveXObject) {
- countycodes = citynodes[0].childNodes;
- } else {
- countycodes = citynodes[0].getElementsByTagName("county")
- }
-
- if (citynodes.length > 0) {
- //城市
- for (var i = 0; i < citynodes.length; i++) {
- var provinceNode = citynodes[i];
- var option = document.createElement("option");
- option.value = provinceNode.getAttribute("name");
- option.text = provinceNode.getAttribute("name");
- province.add(option);
- }
- if (countycodes.length > 0) {
- //填充选择省份的第一个城市的县列表
- for (var i = 0; i < countycodes.length; i++) {
- var dropElement2 = document.getElementById("sel-city");
- var dropElement3 = document.getElementById("sel-area");
- //取当天省份下第一个城市列表
-
- //alert(cityNode.childNodes.length);
- var option = document.createElement("option");
- option.value = countycodes[i].getAttribute("name");
- option.text = countycodes[i].getAttribute("name");
- dropElement3.add(option);
- }
- }
- }
- }
- /*
- //设置县,区
- */
- function selectcounty(v3) {
- var dropElement1 = document.getElementById("sel-provance");
- var dropElement2 = document.getElementById("sel-city");
- var name = dropElement2.options[dropElement2.selectedIndex].value;
- var city = document.getElementById("sel-area");
- var countys = TopnodeList[dropElement1.selectedIndex].getElementsByTagName("city")[dropElement2.selectedIndex].getElementsByTagName("county")
- RemoveDropDownList(city);
- for (var i = 0; i < countys.length; i++) {
- var countyNode = countys[i];
- var option = document.createElement("option");
- option.value = countyNode.getAttribute("name");
- option.text = countyNode.getAttribute("name");
- if(v3==option.value){
- option.selected=true;
- }
- city.add(option);
- }
- }
- function RemoveDropDownList(obj) {
- if (obj) {
- var len = obj.options.length;
- if (len > 0) {
- for (var i = len; i >= 0; i--) {
- obj.remove(i);
- }
- }
- }
- }
- /*
- //读取xml文件
- */
- function loadXmlFile(xmlFile) {
- var xmlDom = null;
- if (window.ActiveXObject) {
- xmlDom = new ActiveXObject("Microsoft.XMLDOM");
- xmlDom.async = false;
- xmlDom.load(xmlFile) || xmlDom.loadXML(xmlFile);//如果用的是XML字符串//如果用的是xml文件
- } else if (document.implementation && document.implementation.createDocument) {
- var xmlhttp = new window.XMLHttpRequest();
- xmlhttp.open("GET", xmlFile, false);
- xmlhttp.send(null);
- xmlDom = xmlhttp.responseXML;
- } else {
- xmlDom = null;
- }
- return xmlDom;
- }
|