省市区三级联动的代码,怎么修改让它获取初始值呢

tiehuolu 2013-03-02 03:35:39
省市区三级联动的代码,怎么修改让它获取初始值呢
<script type="text/javascript" src="get3j.js"></script>
<select id="sp" name ="sp"onChange="chgProvinces('sp','sc','sa')">
<option></option>
</select>
<select id="sc" name ="sc"onChange="chgCitys('sc','sa')">
<option></option>
</select>
<select id="sa" name ="sa" >
<option></option>
</select>
<script type="text/javascript">
loadData('sp', 'sc', 'sa');
</script>
...全文
552 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tiehuolu 2013-03-03
  • 打赏
  • 举报
回复
tiehuolu 2013-03-03
  • 打赏
  • 举报
回复
<script type="text/javascript"> var default_sp="420000"; var default_sc="420300"; var default_sa="420381"; </script> <select id="sp" name ="sp"onChange="chgProvinces('sp','sc','sa',default_sc,default_sa)"> <option></option> </select> <select id="sc" name ="sc"onChange="chgCitys('sc','sa',default_sa)"> <option></option> </select> <select id="sa" name ="sa" > <option></option> </select> <script type="text/javascript"> loadData('sp', 'sc', 'sa',default_sp,default_sc,default_sa); //getProvinces('sp',default_spid);//'sp'表示sp取于标签中的数据, s_spid 表示直接取于变量中的 //loadData('sp', 'sc', 'sa',s_spid); </script>
tiehuolu 2013-03-03
  • 打赏
  • 举报
回复
非常感谢,我是这样改的, function getProvinces(spid,default_spid) { var sp = document.getElementById(spid); //var str="420000" var str=default_spid; //alert(str); sp.options.length = 0; var pAs = provincesData.split(","); for (var pA in pAs) { var pA_parts = pAs[pA].split("|"); sp.options.add(new Option(pA_parts[1], pA_parts[0])); } if (sp.options.length == 0) { sp.disabled = true; sp.options.add(new Option("", "000000")); } else { sp.disabled = false; } for(var i=0; i<sp.options.length; i++) { if(sp.options[i].value == str) //如果s_spid在options的选项中的某一项,则那一项为选中状态!! { sp.options[i].selected = true; return; } else{ sp.options[0].selected = true; } } //sp.options[0].selected = true; } function getCitys(scid, spid,default_scid) { var sc = document.getElementById(scid); var str=default_scid; sc.options.length = 0; var sp = document.getElementById(spid); var pv = sp.options[sp.selectedIndex].value; var cAs = citysData.split(","); for (var cA in cAs) { var cA_parts = cAs[cA].split("|"); if (pv.substring(0, 2) == cA_parts[0].substring(0, 2)) { sc.options.add(new Option(cA_parts[1], cA_parts[0])); } } if (sc.options.length == 0) { sc.disabled = true; sc.options.add(new Option("", "000000")); } else { sc.disabled = false; } for(var i=0; i<sc.options.length; i++) { if(sc.options[i].value == str) //如果default_scid在options的选项中的某一项,则那一项为选中状态!! { sc.options[i].selected = true; return; } else{ sc.options[0].selected = true; } } //sc.options[0].selected = true; }
asdf147asdf 2013-03-02
  • 打赏
  • 举报
回复
将原代码的三个javascript函数分别替换为:

function getProvinces(spid) {
var sp = document.getElementById(spid);
sp.options.length = 0;

var pAs = provincesData.split(",");

var i=-1,j=0
for (var pA in pAs) {
var pA_parts = pAs[pA].split("|");
sp.options.add(new Option(pA_parts[1], pA_parts[0]));
i=i+1
if (pA_parts[1]=="<%=request.querystring("p")%>"){j=i}
}

if (sp.options.length == 0) {
sp.disabled = true;
sp.options.add(new Option("", "000000"));
}
else {
sp.disabled = false;
}

sp.options[j].selected = true;
}

function getCitys(scid, spid) {
var sc = document.getElementById(scid);
sc.options.length = 0;

var sp = document.getElementById(spid);
var pv = sp.options[sp.selectedIndex].value;

var cAs = citysData.split(",");

var i=-1,j=0
for (var cA in cAs) {
var cA_parts = cAs[cA].split("|");

if (pv.substring(0, 2) == cA_parts[0].substring(0, 2)) {
sc.options.add(new Option(cA_parts[1], cA_parts[0]));
i=i+1
if (cA_parts[1]=="<%=request.querystring("c")%>"){j=i}
}
}

if (sc.options.length == 0) {
sc.disabled = true;
sc.options.add(new Option("", "000000"));
}
else {
sc.disabled = false;
}

sc.options[j].selected = true;

}

function getAreas(said, scid) {
var sa = document.getElementById(said);
sa.options.length = 0;

var sc = document.getElementById(scid);
var cv = sc.options[sc.selectedIndex].value;

var aAs = areasData.split(",");

var i=-1,j=0
for (var aA in aAs) {
var aA_parts = aAs[aA].split("|");

if (cv.substring(0, 4) == aA_parts[0].substring(0, 4)) {
sa.options.add(new Option(aA_parts[1], aA_parts[0]));
i=i+1
if (aA_parts[1]=="<%=request.querystring("a")%>"){j=i}
}
}

if (sa.options.length == 0) {
sa.disabled = true;
sa.options.add(new Option("", "000000"));
}
else {
sa.disabled = false;
}

sa.options[j].selected = true;
}



然后用request.querystring方法传递了省、市、县 三个变量
使用的时候在url后面加上:?p=浙江省&c=舟山市&a=普陀区
你也可以改用其他方法传递变量
效果如图:
tiehuolu 2013-03-02
  • 打赏
  • 举报
回复
我的意思是,比如从数据库中读取 天津市,河东区 怎么使选项的初始值 为 天津市,河东区 这个代码,每次的初始值都是 北京 东城区
tiehuolu 2013-03-02
  • 打赏
  • 举报
回复
http://blog.csdn.net/wzk64657534/article/details/4234493 代码在这个页面
简介CJPCD 是一款原生开源的 javascript 插件,用于生成省市区选择器,基本用法十分简单。使用方法最简单的使用只需要两个步骤:放置容器,引入依赖<!--存放省市区数据的三个 select--> <!--引入插件--> [removed][removed]调用方法var pcd = new CJPCD('province','city','district');效果如下图API初始化/**     provinceId :省份 select id     cityId     :城市 select id     districtId :县区 select id */ var pcd = new CJPCD(provinceId,cityId,districtId);设置初始值/**     provinceName :省份名称     cityName     :城市名称     districtName :县区名称     注意:前提是必须初始化 */ pcd.setUp('provinceName','cityName','districtName');eg:var pcd = new CJPCD('provinceId','cityId','districtId');//先初始化 pcd.setUp("广东省","广州市","越秀区");//设置值使用场景:设置值一般用于地址信息的修改重置pcd.reSet();获取值pcd.getValue('json');//指定以json对象返回 pcd.getValue();//默认以json对象返回,效果同上json 对象返回如下:{"province":"广东省","city":"广州市","district":"越秀区"};指定拼接成一定格式的字符串进行返回,以逗号为例(当然也可以使用其他字符串)pcd.getValue(',');//结果使用逗号拼接成字符串返回值如下"广东省,广州市,越秀区"补充说明如果业务中涉及多组地址选择,请创建多个 CJPCD 实例 如var pcd1 = new CJPCD(provinceId1,cityId1,districtId1); var pcd2 = new CJPCD(provinceId2,cityId2,districtId2); ... var pcdn = new CJPCD(provinceIdn,cityIdn,districtIdn);  标签:省市区三级联动

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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