//freezwy search this in web info
//全国政治区划信息,包括34个省及各省下辖地级市
var provinceOp=null;
var cityOp=null;
var PROVNUM=34;
//定义省数组provinceOp
provinceOp = new Array(PROVNUM);
provinceOp[0]=new Option("上海","上海");
provinceOp[1]=new Option("北京","北京");
provinceOp[2]=new Option("河北","河北");
//定义城市二维数组,第一维分34个省,第二维是各省的城市
cityOp = new Array(PROVNUM);
cityOp[0] = new Array(20);
cityOp[0][0]=new Option("上海","上海");
cityOp[0][1]=new Option("黄浦区","黄浦区");
cityOp[0][2]=new Option("卢湾区","卢湾区");
cityOp[0][3]=new Option("徐汇区","徐汇区");
cityOp[0][4]=new Option("长宁区","长宁区");
cityOp[0][5]=new Option("静安区","静安区");
cityOp[0][6]=new Option("普陀区","普陀区");
cityOp[0][7]=new Option("闸北区","闸北区");
cityOp[0][8]=new Option("虹口区","虹口区");
cityOp[0][9]=new Option("杨浦区","杨浦区");
cityOp[0][10]=new Option("闵行区","闵行区");
cityOp[0][11]=new Option("宝山区","宝山区");
cityOp[0][12]=new Option("嘉定区","嘉定区");
cityOp[0][13]=new Option("浦东新区","浦东新区");
cityOp[0][14]=new Option("金山区","金山区");
cityOp[0][15]=new Option("松江区","松江区");
cityOp[0][16]=new Option("南汇区","南汇区");
cityOp[0][17]=new Option("奉贤区","奉贤区");
cityOp[0][18]=new Option("青浦区","青浦区");
cityOp[0][19]=new Option("崇明县","崇明县");
cityOp[1] = new Array(19);
cityOp[1][0]=new Option("北京","北京");
cityOp[1][1]=new Option("东城区","东城区");
cityOp[1][2]=new Option("西城区","西城区");
cityOp[1][3]=new Option("崇文区","崇文区");
cityOp[1][4]=new Option("宣武区","宣武区");
cityOp[1][5]=new Option("朝阳区","朝阳区");
cityOp[1][6]=new Option("丰台区","丰台区");
cityOp[1][7]=new Option("石景山区","石景山区");
cityOp[1][8]=new Option("海淀区","海淀区");
cityOp[1][9]=new Option("门头沟区","门头沟区");
cityOp[1][10]=new Option("房山区","房山区");
cityOp[1][11]=new Option("通州区","通州区");
cityOp[1][12]=new Option("顺义区","顺义区");
cityOp[1][13]=new Option("大兴区","大兴区");
cityOp[1][14]=new Option("平谷区","平谷区");
cityOp[1][15]=new Option("怀柔区","怀柔区");
cityOp[1][16]=new Option("密云县","密云县");
cityOp[1][17]=new Option("延庆县","延庆县");
cityOp[1][18]=new Option("昌平区","昌平区");
cityOp[2] = new Array(12);
cityOp[2][0]=new Option("石家庄","石家庄");
cityOp[2][1]=new Option("唐山","唐山");
cityOp[2][2]=new Option("秦皇岛","秦皇岛");
cityOp[2][3]=new Option("邯郸","邯郸");
cityOp[2][4]=new Option("邢台","邢台");
cityOp[2][5]=new Option("保定","保定");
cityOp[2][6]=new Option("张家口","张家口");
cityOp[2][7]=new Option("承德","承德");
cityOp[2][8]=new Option("沧州","沧州");
cityOp[2][9]=new Option("廊坊","廊坊");
cityOp[2][10]=new Option("衡水","衡水");
cityOp[2][11]=new Option("其它","其它");...................(由于字数限制就不都贴了,总共有34个省份)
//载入页面时,在form_register表单的province下拉框加入省份信息,在city下拉框加入城市信息  
//function window_onload() {
if (document.form_register.loadflag.value=="1"){
addProvince(form_register.province);//调用子函数加省份
addCity(form_register.province,form_register.city);//调用子函数加城市
}
else{
var x = document.form_register.formprovince.value;
var y = document.form_register.formcity.value;

addProvince(form_register.province,x);//调用子函数加省份
addCity(form_register.province,form_register.city,y);//调用子函数加城市
 }
//}//子函数加省份
function addProvince(prov){
for(i=0;i<PROVNUM;i++){
prov.add(provinceOp[i]);
}
prov.options[34].selected=true;
}function addProvince(prov,formprov){

for(i=0;i<PROVNUM;i++){
prov.add(provinceOp[i]);

if (provinceOp[i].value == formprov)
prov.options[i].selected=true;
}}//子函数加城市
function addCity(prov,city){
var i = prov.selectedIndex;
for(j=0;j<cityOp[i].length;j++){
city.add(cityOp[i][j]);
}
city.options[0].selected=true;
}function addCity(prov,city,formcity){
var i = prov.selectedIndex;
for(j=0;j<cityOp[i].length;j++){
city.add(cityOp[i][j]);

if (cityOp[i][j].value == formcity)
city.options[j].selected=true;
}
}//子函数删城市
function delCity(city){
var len = city.length;
for(i=0;i<len;i++){
city.remove(0);
}
}//子函数:控制可选城市随所选省份改变
function province_onchange() {
     delCity(form_register.city);
addCity(form_register.province,form_register.city);
}//复原
function query_onreset() {
    form_register.province.options[0].selected=true;
    delCity(form_register.city);
    addCity(form_register.province,form_register.city);
}
这个省份联动的脚本有一个缺陷:比如我选中上海,城市那栏显示上海,在选中另一个省份,然后再次选中上海,城市那栏就不再现实上海,而显示崇明县(最后一个选项)。其他所有省份都存在此问题,哪位熟悉JS的大虾能帮帮忙帮我修改优化一下发布上来,每次选中上海,城市那栏都应该显示上海(第一个选项)  谢谢了!!!!!!!!小弟不胜感激阿!!