用xml 读取省 市 县

<script language="javascript" type="text/javascript">
//首先需要初始化
var xmlDoc;
var nodeIndex;
function getxmlDoc()
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
var currNode;
xmlDoc.async=false;
xmlDoc.load("images/Area.xml");
if(xmlDoc.parseError.errorCode!=0)
{
var myErr=xmlDoc.parseError;
alert("出错!"+myErr.reason);
}
}
function Init()
{
//打开xlmdocm文档
getxmlDoc();
var dropElement1=document.getElementById("country");
var dropElement2=document.getElementById("province");
var dropElement3=document.getElementById("city");
RemoveDropDownList(dropElement1);
RemoveDropDownList(dropElement2);
RemoveDropDownList(dropElement3);
var TopnodeList=xmlDoc.selectSingleNode("address").childNodes;
if(TopnodeList.length>0)
{
//省份列表
var country;
var province;
var city;
for(var i=0; i<TopnodeList.length; i++)
{
//添加列表项目
country=TopnodeList[i];
var eOption=document.createElement("option");
eOption.value=country.getAttribute("name");
eOption.text=country.getAttribute("name");
dropElement1.add(eOption);
}
if(TopnodeList[0].childNodes.length>0)
{
//城市列表
for(var i=0;i<TopnodeList[0].childNodes.length;i++)
{
var id=dropElement1.options[0].value;
//默认为第一个省份的城市
province=TopnodeList[0];
var eOption=document.createElement("option");
eOption.value=province.childNodes[i].getAttribute("name");
eOption.text=province.childNodes[i].getAttribute("name");
dropElement2.add(eOption);
}
if(TopnodeList[0].childNodes[0].childNodes.length>0)
{
//县列表
for(var i=0;i<TopnodeList[0].childNodes[0].childNodes.length;i++)
{
var id=dropElement2.options[0].value;
//默认为第一个城市的第一个县列表
city=TopnodeList[0].childNodes[0];
var eOption=document.createElement("option");
eOption.value=city.childNodes[i].getAttribute("name");
eOption.text=city.childNodes[i].getAttribute("name");
this.document.getElementById("city").add(eOption);
}
}
}
}
}
function selectCity()
{ var dropElement1=document.getElementById("country");
var name=dropElement1.options[dropElement1.selectedIndex].value;
//alert(id);
var countryNodes=xmlDoc.selectSingleNode('//address/province [@name="'+name+'"]');
//alert(countryNodes.childNodes.length);
var province=document.getElementById("province");
var city=document.getElementById("city");
RemoveDropDownList(province);
RemoveDropDownList(city);
if(countryNodes.childNodes.length>0)
{
//填充城市
for(var i=0; i<countryNodes.childNodes.length; i++)
{
var provinceNode=countryNodes.childNodes[i];
var eOption=document.createElement("option");
eOption.value=provinceNode.getAttribute("name");
eOption.text=provinceNode.getAttribute("name");
province.add(eOption);
}
if(countryNodes.childNodes[0].childNodes.length>0)
{
//填充选择省份的第一个城市的县列表
for(var i=0;i<countryNodes.childNodes[0].childNodes.length;i++)
{
//alert("i="+i+"\r\n"+"length="+countryNodes.childNodes[0].childNodes.length+"\r\n");
var dropElement2=document.getElementById("province");
var dropElement3=document.getElementById("city");
//取当天省份下第一个城市列表
var cityNode=countryNodes.childNodes[0];
//alert(cityNode.childNodes.length);
var eOption=document.createElement("option");
eOption.value=cityNode.childNodes[i].getAttribute("name");
eOption.text=cityNode.childNodes[i].getAttribute("name");
dropElement3.add(eOption);
}
}
}
}
function selectCountry()
{
var dropElement2=document.getElementById("province");
var name=dropElement2.options[dropElement2.selectedIndex].value;
var provinceNode=xmlDoc.selectSingleNode('//address/province/city[@name="'+name+'"]');
var city=document.getElementById("city");
RemoveDropDownList(city);
for(var i=0; i<provinceNode.childNodes.length; i++)
{
var cityNode=provinceNode.childNodes[i];
var eOption=document.createElement("option");
eOption.value=cityNode.getAttribute("name");
eOption.text=cityNode.getAttribute("name");
city.add(eOption);
}
}
function RemoveDropDownList(obj)
{
if(obj)
{
var len=obj.options.length;
if(len>0)
{
//alert(len);
for(var i=len;i>=0;i--)
{
obj.remove(i);
}
}
}

}
</script>

<select id="country" name="country" runat="server" onChange="selectCity();">
<option value="" selected="true">省/直辖市</option>
</select> 
<select id="province" name="province" runat="server" onChange="selectCountry()">
<option value="" selected="true">请选择</option>
</select> 
<select id="city" name="city" runat="server" >
<option value="" selected="true">请选择</option>
</select>


省市区回填会比较慢

<script type="text/JavaScript">
//首先需要初始化
var xmlDoc;
var nodeIndex;
function getxmlDoc()
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
var currNode;
xmlDoc.async=false;
xmlDoc.load("<%=path%>/images/Area.xml");
if(xmlDoc.parseError.errorCode!=0)
{
var myErr=xmlDoc.parseError;
alert("出错!"+myErr.reason);
}
}
function Init1()
{
//打开xlmdocm文档
getxmlDoc();
var dropElement1=document.getElementById("country");
var dropElement2=document.getElementById("province");
var dropElement3=document.getElementById("city");
RemoveDropDownList(dropElement1);
RemoveDropDownList(dropElement2);
RemoveDropDownList(dropElement3);
var TopnodeList=xmlDoc.selectSingleNode("address").childNodes;
if(TopnodeList.length>0)
{
//省份列表
var country;
var province;
var city;
for(var i=0; i<TopnodeList.length; i++)
{
//添加列表项目
country=TopnodeList[i];
var eOption=document.createElement("option");
eOption.value=country.getAttribute("name");
eOption.text=country.getAttribute("name");
dropElement1.add(eOption);

if(TopnodeList[i].childNodes.length>0)
{
//城市列表
for(var j=0;j<TopnodeList[i].childNodes.length;j++)
{
var id=dropElement1.options[i].value;
//默认为第一个省份的城市
province=TopnodeList[i];
var eOption=document.createElement("option");
eOption.value=province.childNodes[j].getAttribute("name");
eOption.text=province.childNodes[j].getAttribute("name");
dropElement2.add(eOption);
if(TopnodeList[i].childNodes[j].childNodes.length>0)
{
//县列表
for(var k=0;k<TopnodeList[i].childNodes[j].childNodes.length;k++)
{
// var id=dropElement2.options[k].value;
//默认为第一个城市的第一个县列表
city=TopnodeList[i].childNodes[j];
var eOption=document.createElement("option");
eOption.value=city.childNodes[k].getAttribute("name");
eOption.text=city.childNodes[k].getAttribute("name");
this.document.getElementById("city").add(eOption);
}
}
}

}

}
}
}
function selectCity()
{ var dropElement1=document.getElementById("country");
var name=dropElement1.options[dropElement1.selectedIndex].value;
//alert(id);
var countryNodes=xmlDoc.selectSingleNode('//address/province [@name="'+name+'"]');
//alert(countryNodes.childNodes.length);
var province=document.getElementById("province");
var city=document.getElementById("city");
RemoveDropDownList(province);
RemoveDropDownList(city);
if(countryNodes.childNodes.length>0)
{
//填充城市
for(var i=0; i<countryNodes.childNodes.length; i++)
{
var provinceNode=countryNodes.childNodes[i];
var eOption=document.createElement("option");
eOption.value=provinceNode.getAttribute("name");
eOption.text=provinceNode.getAttribute("name");
province.add(eOption);
}
if(countryNodes.childNodes[0].childNodes.length>0)
{
//填充选择省份的第一个城市的县列表
for(var i=0;i<countryNodes.childNodes[0].childNodes.length;i++)
{
//alert("i="+i+"\r\n"+"length="+countryNodes.childNodes[0].childNodes.length+"\r\n");
var dropElement2=document.getElementById("province");
var dropElement3=document.getElementById("city");
//取当天省份下第一个城市列表
var cityNode=countryNodes.childNodes[0];
//alert(cityNode.childNodes.length);
var eOption=document.createElement("option");
eOption.value=cityNode.childNodes[i].getAttribute("name");
eOption.text=cityNode.childNodes[i].getAttribute("name");
dropElement3.add(eOption);
}
}
}
}
function selectCountry()
{
var dropElement2=document.getElementById("province");
var name=dropElement2.options[dropElement2.selectedIndex].value;
var provinceNode=xmlDoc.selectSingleNode('//address/province/city[@name="'+name+'"]');
var city=document.getElementById("city");
RemoveDropDownList(city);
for(var i=0; i<provinceNode.childNodes.length; i++)
{
var cityNode=provinceNode.childNodes[i];
var eOption=document.createElement("option");
eOption.value=cityNode.getAttribute("name");
eOption.text=cityNode.getAttribute("name");
city.add(eOption);
}
}
function RemoveDropDownList(obj)
{
if(obj)
{
var len=obj.options.length;
if(len>0)
{
//alert(len);
for(var i=len;i>=0;i--)
{
obj.remove(i);
}
}
}

}
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值