两级联动的select,(XML版)

XML文件

1<root title="PC Market List"><city name="北京市" recordno="3"><market name="百脑汇电脑城" recordno="22"></market><market name="硅谷电脑城" recordno="20"></market><market name="海龙电脑城" recordno="21"></market><market name="赛博数码广场" recordno="25"></market><market name="太平洋电脑城" recordno="23"></market><market name="中海电子市场" recordno="24"></market></city><city name="广州市" recordno="2"><market name="广州电脑城东城" recordno="11"></market><market name="广州电脑城西城" recordno="12"></market><market name="海印电脑城" recordno="16"></market><market name="恒龙电脑城" recordno="19"></market><market name="金百汇电脑城" recordno="18"></market><market name="金茂电脑城" recordno="17"></market><market name="太平洋电脑城" recordno="10"></market><market name="天河电脑城" recordno="13"></market><market name="五山科技街" recordno="14"></market><market name="中六电脑城" recordno="15"></market></city><city name="上海市" recordno="4"><market name="百脑汇电脑城" recordno="27"></market><market name="芙蓉江电脑城" recordno="30"></market><market name="赛博数码广场" recordno="29"></market><market name="赛格电脑城" recordno="28"></market><market name="太平洋电脑城" recordno="26"></market></city><city name="深圳市" recordno="1"><market name="宝安电脑城" recordno="8"></market><market name="都会100电脑城" recordno="7"></market><market name="横岗电脑城" recordno="9"></market><market name="宏大电子市场" recordno="4"></market><market name="华强电子世界" recordno="2"></market><market name="环球电脑城" recordno="6"></market><market name="赛博电脑城" recordno="3"></market><market name="赛格广场" recordno="1"></market><market name="远望数码城" recordno="5"></market></city></root>

js文件
var MarketXMLDoc = new ActiveXObject("Msxml2.DOMDocument");
MarketXMLDoc.async = false;
MarketXMLDoc.load("/XML/MARKET_LIST.XML");
function GetMarketList(Type)
{
var Nodes;
switch (Type)
{
case "AllCitys" :
Nodes=MarketXMLDoc.getElementsByTagName("City");
break;
case "AllMarkets" :
Nodes=MarketXMLDoc.getElementsByTagName("Market");
break;
case "TheMarkets" :
CityId=arguments[arguments.length-1];
if(CityId!="")
{
Nodes=MarketXMLDoc.selectNodes(".//City[@RecordNo='" + CityId + "']//Market");
}
else
{
Nodes=MarketXMLDoc.selectNodes(".//City//Market");
}
break;
default :
break;
}
return Nodes;
}
function ChangeMarkets()
{
CityId=event.srcElement.options[event.srcElement.selectedIndex].value;
GenerateMarketList("TheMarkets","Market","","",CityId)
}
function ChangeMarketsEx()
{
CityId=event.srcElement.options[event.srcElement.selectedIndex].value;
GenerateMarketListEx("TheMarkets","_Market","","",CityId)
}
function GenerateMarketList(Type,Name,Style,Class)
{
var oList,oItem;
var CityId=arguments[arguments.length-1];
var Nodes=GetMarketList(Type,CityId);
if(Nodes.length==0) return;
switch (Type)
{
case "AllCitys" :
case "AllMarkets" :
oList=document.createElement("SELECT");
oList.style.cssText=Style;
oList.className=Class;
oList.name=Name;
oList.id=Name;
oList.onchange=(Type=="AllCitys"?"ChangeMarkets()":"");
break;
case "TheMarkets" :
oList=document.getElementsByName(Name)[0];
oList.innerHTML="";
break;
default :
break;
}
oItem=document.createElement("OPTION");
oItem.value="";
oItem.innerText="-搜索所有-";
oList.appendChild(oItem);
for(i=0;i<Nodes.length;i++)
{
oItem=document.createElement("OPTION");
oItem.value=Nodes[i].getAttribute("RecordNo");
oItem.innerText=Nodes[i].getAttribute("Name");
oList.appendChild(oItem);
}
return oList;
}
function InputAddress()
{
NewValue=event.srcElement.options[event.srcElement.selectedIndex].text
document.getElementById("Address1").value+=NewValue;
}
function GenerateMarketListEx(Type,Name,Style,Class,Callback)
{
var oList,oItem;
var CityId=arguments[arguments.length-1];
var Nodes=GetMarketList(Type,CityId);
if(Nodes.length==0) return;
switch (Type)
{
case "AllCitys" :
case "AllMarkets" :
oList=document.createElement("SELECT");
oList.style.cssText=Style;
oList.className=Class;
oList.name=Name;
oList.id=Name;
oList.onchange=((Type=="AllCitys"?"ChangeMarketsEx();":"")+Callback);
break;
case "TheMarkets" :
oList=document.getElementsByName(Na

Published At
Categories with Web编程
Tagged with
comments powered by Disqus