Author: shaoyun
Email: shaoyun (at) yeah.net
Date: 2010-03-10 02:03
Blog: http://shaoyun.cnblogs.com/
用Jquery实现,原始代码只支持IE,这里我改了一下,我的代码里面有三个版本的实现
第一个是通过读取XML构建,支持IE/firefox,chrome不支持,有兴趣的可以将读取XML的部分改成AJAX的方式,这样chrome支持就不成问题
第二个是采用Json数据格式构建,是我的第二次尝试改进
第三个与第二个其实是一样的,只不过将数据分离到JS文件中,我的代码中有一个ASP文件,是调用数据库生成Json省市区数据的,如果页面直接调用ASP文件,速度会很慢,生成JS文件后直接调用就要快的多,而且这部分数据一般不会改动
更新记录:
++2010-04-19 12:11:24
多加了一个插件的例子,其实不算插件,就是一函数,为什么不写成插件,只是基于灵活性的考虑,
让select可以放在页面的任何位置,而不是局限在div、table、td等页面元素内
参数类似下面,s1/s2/s3配置select的id,v1/v2/v3为默认值,如果不想设置请设置为null,或者直接不设置
参数配置如下,配置select的三个ID和默认值就行,无默认值填写为null
复制代码 代码如下:
var defaults = {
s1:'Select1',
s2:'Select2',
s3:'Select3',
v1:null,
v2:null,
v3:null
};
这算是第四个例子,目录下的php文件是服务端数据的生成Demo,用作使用的参考
数据格式定义类似如下:
复制代码 代码如下:
var threeSelectData={
"省份":{val:"",items:{"城市":{val:"",items:{"区县":""}}}},
"beijing":{val:"01",items:{
"bj-01":{val:"0101",items:{
"bj-01-01":"010101"
}},
"bj-02":{val:"0102",items:{
"bj-02-01":"010201",
"bj-02-02":"010202"
}}
}},
"shanxi":{val:"02",items:{}},
"guangzhou":{val:"02",items:{}}
};
代码例子:
复制代码 代码如下:
<script type="text/javascript" src="../jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="areadata.js"></script>
<script type="text/javascript">
/*
通用三级联动说明
参数配置如下,配置select的三个ID和默认值就行,无默认值填写为null
var defaults = {
s1:'Select1',
s2:'Select2',
s3:'Select3',
v1:null,
v2:null,
v3:null
};
*/
var defaults = {
s1:'Select1',
s2:'Select2',
s3:'Select3',
v1:120000,
v2:120250,
v3:120254
};
$(function(){
threeSelect(defaults);
});
function threeSelect(config){
var $s1=$("#"+config.s1);
var $s2=$("#"+config.s2);
var $s3=$("#"+config.s3);
var v1=config.v1?config.v1:null;
var v2=config.v2?config.v2:null;
var v3=config.v3?config.v3:null;
$.each(threeSelectData,function(k,v){
appendOptionTo($s1,k,v.val,v1);
});
$s1.change(function(){
$s2.html("");
$s3.html("");
if(this.selectedIndex==-1) return;
var s1_curr_val = this.options[this.selectedIndex].value;
$.each(threeSelectData,function(k,v){
if(s1_curr_val==v.val){
if(v.items){
$.each(v.items,function(k,v){
appendOptionTo($s2,k,v.val,v2);
});
}
}
});
if($s2[0].options.length==0){appendOptionTo($s2,"...","",v2);}
$s2.change();
}).change();
$s2.change(function(){
$s3.html("");
var s1_curr_val = $s1[0].options[$s1[0].selectedIndex].value;
if(this.selectedIndex==-1) return;
var s2_curr_val = this.options[this.selectedIndex].value;
$.each(threeSelectData,function(k,v){
if(s1_curr_val==v.val){
if(v.items){
$.each(v.items,function(k,v){
if(s2_curr_val==v.val){
$.each(v.items,function(k,v){
appendOptionTo($s3,k,v,v3);
});
}
});
if($s3[0].options.length==0){appendOptionTo($s3,"...","",v3);}
}
}
});
}).change();
function appendOptionTo($o,k,v,d){
var $opt=$("<option>").text(k).val(v);
if(v==d){$opt.attr("selected", "selected")}
$opt.appendTo($o);
}
}
</script>
<style type="text/css" media="screen">
select{width:80px;}
</style>
<select id="Select1" name="Select1"></select>
<select id="Select2" name="Select2"></select>
<select id="Select3" name="Select3"></select>
文字没有详细整理!懂点JS的就能看懂!
代码打包下载
相关推荐:
未来写作新模式文章撰写AI如何助力内容创作
ChatGPT最近不好用了?了解这些背后的原因与解决方案,ai sketcher
产品seo什么意思,产品seo标题是什么 ,ai模仿张宇
怎么用AI生成文章?全新写作方式的揭秘与应用指南
“赞片CMS”-让你的*站点管理更高效、便捷,日照seo平台
SEO优化排-打造高效的网络营销利器,精神AI
SEO提高:如何通过精准优化让网站流量翻倍,优化排名seo加盟费用
SEO广告:如何借助SEO提升品牌曝光与销售业绩?,网站推广怎么选择
seo要什么条件,seo都需要做什么 ,交互ai求职
seo需要保持什么心态,seo的要求 ,ai83562
seo重点工作是什么,seo重点工作是什么意思 ,棋谱检查ai
seo管理系统是什么,seo网站管理 ,过度圆ai
seo要寻找什么资源,怎么找seo ,ai插画描边
SEO教育:搜索引擎优化,开启成功职业之路,搜狗SEO排名接单
OpenAI银行卡扣款的公司是哪家?揭秘背后的支付流程与安全保障,AI素描相片
SEO阶段解析:从入门到精通,助你站稳搜索引擎的前沿,网站建设特定开发
ChatGPT:我目前无法查看或解析附件,您是否遇到过这样的困扰?,ai+燃烧
seo需要了解什么,seo需要学些什么内容 ,ovo ai
为什么做seo矩阵项目,为什么做seo矩阵项目不能做 ,怎么用ai写作
SEO短视:为何眼前的成效不能成为长久的策略?,网站上线seo优化
ChatGPT怎么找梯子:突破网络限制,轻松访问AI助手的终极指南,鬼灭之刃人物AI还原
为什么说seo重要,为什么说seo重要一点 ,中通智能ai是什么意思
SEO优化基础:让你的网站脱颖而出的秘密武器,模仿猫ai
SEO关键词利器:如何借助精准关键词提升网站流量与排名,ai绘画客户
互联网快照:记录数字时代的每个瞬间,全网seo怎么优化内容
seo矩阵运营中心是什么,seo矩阵运营中心是什么意思啊 ,北京ai特效
AI自动读文:让阅读更轻松、更高效的智能革命,寄ai空
ChatGPT对于大数据发展的帮助:赋能行业变革,推动智能化未来,ai写作真的好吗
ChatGPT昨晚突然不能使用,背后真相令人意想不到!,edga ai
ChatGPT当前不可用?如何应对AI服务中断的挑战,ai文章免费写作app
AI生成网页模板,轻松打造专业网站,ai网格画法
GoogleGPT-引领未来智能对话的革命,灵境ai画质
AI搜索写文章:一丝丝智慧背后的无限可能,电脑免费ai写作神器
ChatGPT为什么打不开了?揭秘背后的原因与解决办法,ai业务后端
今时CMS:引领数字化转型的智慧之选,河南seo优化网站联系方式
SEO策划:让你的网站迅速脱颖而出的秘诀,seo优化和技巧
AI人工智能:开发与应用的必备软件推荐
ChatGPT付款银行卡被拒绝?解决方案全解析!,小发猫ai智能写作查重能过吗
AI人工智能:改变未来的科技革命
SEO联系:如何通过SEO优化提升您的网络营销效果,企业营销推广获客
目前最火的AI软件有哪些?深度解析必备工具
SEO场景下的数字营销:如何通过精准优化提升网站流量,陕西融发建设集团网站
用AI生成文章,让创作更简单高效
AI缩写文档:革新文档管理与自动化的未来,ai聊天中文
SEO流程全解析:如何提升网站流量与排名,账号如何营销推广
SEO任何:如何通过精准优化让网站流量突破极限,太原网站建设培训班
seo算是什么营销方式,seo是网络营销吗 ,ai318
ChatGPT当前不可用?背后的原因与解决方案全解析,ai propos
SEO优化攻略:如何通过精准策略提升网站排名与流量,aI ow翻译
了解SEO:让你的网站在搜索引擎中脱颖而出的秘密武器,宝山区常见网站优化