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",["济南区","历下区"]);
dsy.add("0_2_1",["青岛区","黄岛县"]);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的下拉菜单中。也就是打开联动的时候自动显示的是这三个数据。我用的是JSP,如果大家有更好的三级联动代码也可推荐一下
html的代码如下:
<tr>
<td class="left1">
联系地址:</td>
<td class="left2">
<select id="s1" name="s1">
</select>
<select id="s2" name="s2">
</select>
<select id="s3" name="s3">
</select>
</td>
</tr>
{
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",["济南区","历下区"]);
dsy.add("0_2_1",["青岛区","黄岛县"]);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的下拉菜单中。也就是打开联动的时候自动显示的是这三个数据。我用的是JSP,如果大家有更好的三级联动代码也可推荐一下
html的代码如下:
<tr>
<td class="left1">
联系地址:</td>
<td class="left2">
<select id="s1" name="s1">
</select>
<select id="s2" name="s2">
</select>
<select id="s3" name="s3">
</select>
</td>
</tr>
<select id="s1" name="s1">
</select>
<select id="s2" name="s2">
</select>
<select id="s3" name="s3">
</select>
<script language="JavaScript">
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(ar[i]==datafromdb[v])options[i+1].selected = true;//如果是db检索的数据,就选中
}
}
}
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",["济南区","历下区"]);
dsy.add("0_2_1",["青岛区","黄岛县"]);var s=["s1","s2","s3"];
var opt0 = ["省","市","县"];
var datafromdb = ["山东","济南","历下区"]; //db检索的数据
function setup()
{
for(i=0;i<s.length-1;i++)
document.getElementById(s[i]).onchange=new Function("change("+(i+1)+")");
change(0);
}
setup();</script>