JS 地址联动问题

weizhao_2008 2008-11-29 05:04:56
function Dsy()
{
this.Items = {};
}
Dsy.prototype.add = function(id,iArray)
{
this.Items[id] = iArray;
}
Dsy.prototype.Exists = function(id)
{
if(typeof(this.Items[id]) == "undefined") return false;
return true;
}

function change(v){
var str="0";
for(i=0;i<v;i++){ str+=("_"+(document.getElementById(s[i]).selectedIndex-1));};
var ss=document.getElementById(s[v]);
with(ss){
length = 0;
options[0]=new Option(opt0[v],opt0[v]);
if(v && document.getElementById(s[v-1]).selectedIndex>0 || !v)
{
if(dsy.Exists(str)){
ar = dsy.Items[str];
for(i=0;i<ar.length;i++)options[length]=new Option(ar[i],ar[i]);
if(v)options[1].selected = true;
}
}
if(++v<s.length){change(v);}
}
}


var dsy = new Dsy();

dsy.add("0",["安徽","北京","福建","甘肃","广东","广西","贵州","海南","河北","河南","黑龙江", "湖北","湖南","吉林","江苏","江西","辽宁","内蒙古","宁夏","青海","山东", "山西","陕西","上海","四川","天津","西藏","新疆","云南","浙江","重庆","香港","台湾","澳门"]);

dsy.add("0_0",["合肥","安庆","蚌埠","巢湖","池州","滁州","阜阳","淮北","淮南","黄山","六安","马鞍山","宿州","铜陵","芜湖","宣城","亳州"]);

dsy.add("0_0_0",["庐阳区","瑶海区","蜀山区","包河区","长丰县","肥东县","肥西县"]);

dsy.add("0_0_1",["迎江区","大观区","宜秀区","桐城市","怀宁县","枞阳县","潜山县","太湖县","宿松县","望江县","岳西县"]);

dsy.add("0_0_2",["蚌山区","龙子湖","禹会区","淮上区","怀远县","五河县","固镇县"]);




dsy.add("0_1",["北京城区","下辖县市"]);
dsy.add("0_1_0",["东城区","西城区","崇文区","宣武区","朝阳区","丰台区","石景山区","海淀区","门头沟区","房山区","通州区","顺义区","昌平区","大兴区","怀柔区","平谷区"]);
dsy.add("0_1_1",["密云县","延庆县"]);


dsy.add("0_2",["福州","龙岩","南平","宁德","莆田","泉州","三明","厦门","漳州"]);

dsy.add("0_2_0",["长乐市","福清市","福州市","连江县","罗源县","闽侯县","闽清县","平潭县","永泰县"]);
","老河口市","枣阳市","宜城市","南漳县","谷城县","保康县"]);




<!--
//** Power by Fason(2004-3-11)
//** Email:fason_pfx@hotmail.com

var s=["s1","s2","s3"];
var opt0 = ["省份","地级市","市","县级市","县"];
function setup()
{
for(i=0;i<s.length-1;i++)
document.getElementById(s[i]).onchange=new Function("change("+(i+1)+")");
change(0);
}
//-->
这是网上找的地址联动下拉菜单的JS代码,我想实现的是S1为下拉选择菜单,在S1选择相应省后,S2文本的形式显示全部对应的市,S3默认显示S2的第一个选项对应的全部县,这种联动不知道可不可以通过以上方式实现啊,谢谢各位指教。
效果有点同51job的地址选择
...全文
291 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
weizhao_2008 2008-12-01
  • 打赏
  • 举报
回复
谢谢各位的解答,问题我已经解决了,谢谢了
  • 打赏
  • 举报
回复
3个级联我还没用过。。不过2个级联的倒是经常用到!
用数组试试!
2个级联我就是用数组的

//定义数组
var zhengjian = new Array();
//将数组的元素再设置为数组
zhengjian["身份证"] = new Array("第一代身份证","第二代身份证","临时身份证","暂住证");
zhengjian["军官证"] = new Array("士官证","士兵证");
zhengjian["护照"] = new Array("因私护照","因公护照","公务护照");
//关闭下拉列表 。。加载数据
function selects()
{
document.form.select2.options.length=0;
//获取 选择的下标
var index = document.form.select1.options.selectedIndex;
//获取选中的项
var values = document.form.select1.options[index].innerText;

if(values!="请选择证件类型")
{
//循环添加数据到下拉框中
for(var j=0;j<zhengjian[values].length;j++)
{
document.form.select2.options.add(new Option((zhengjian[values])[j],j));
}
}
}
jiang_jiajia10 2008-11-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cloudgamer 的回复:]
参考一下这个下来联动
[/Quote]
很好的例子啊
weizhao_2008 2008-11-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yiwei124 的回复:]
www.umspace.net:9072,你看看这个搜索,是基于prototype的,如果你用的上我可以教你
[/Quote]
你好,打不开啊
yiwei124 2008-11-29
  • 打赏
  • 举报
回复
www.umspace.net:9072,你看看这个搜索,是基于prototype的,如果你用的上我可以教你
weizhao_2008 2008-11-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cloudgamer 的回复:]
参考一下这个下来联动
[/Quote]
谢谢的你答案,由于对JS确实不懂,你那个也是定义成三个下拉菜单的,可能是我没有说明白
s1 在下拉中选择之后(如:选择了四川)
S2现在全部的对应地址,(显示:成都 德阳 资阳 等等)
S3在S2没有选择的情况下,默认显示S2第一个市对应的县(如:青羊区 金牛区 成华区 等等),在S2选择变动了之后在对应的改变S3中的县
cloudgamer 2008-11-29
  • 打赏
  • 举报
回复

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧