十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
jQuery插件city-picker实现省市区三级联动特效源码是一款交互体验更友好省市区三级联动,下拉面板式,支持无刷新,视觉更清爽。
创新互联是一家专业提供关岭企业网站建设,专注与网站设计、成都网站设计、H5开发、小程序制作等业务。10年已为关岭众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。
[img]HTML
首先在head中载入jquery库和cityselect插件。
script type="text/javascript" src="js/jquery.js"/script
script type="text/javascript" src="js/jquery.cityselect.js"/script
接下来,我们在#city中,放置三个select,并且三个select分别设置class属性为:prov、city、dist,分别表示省、市、区(县)三个下拉框。注意如果只想实现省市二级联动,则去掉第三个dist的select即可。
div id="city"
select class="prov"/select
select class="city" disabled="disabled"/select
select class="dist" disabled="disabled"/select
/div
jQuery
调用cityselect插件非常简单,直接调用:
$("#city").citySelect();
自定义参数调用,设置默认省市区。自定义参数调用,设置默认省市区。
$("#city").citySelect({
url:"js/city.min.js",
prov:"湖南", //省份
city:"长沙", //城市
dist:"岳麓区", //区县
nodata:"none" //当子集无数据时,隐藏select
});
当然,你还可以扩展,自定义下拉列表选项数据,你可以根据需要设置下拉内容,注意数据格式一定要为JSON格式。
$("#city").citySelect({
url:{"citylist":[
{"p":"前端技术","c":[{"n":"HTML"},{"n":"CSS","a":[{"s":"CSS2.0"},{"s":"CSS3.0"}]},
{"n":"JAVASCIPT"}]},
{"p":"编程语言","c":[{"n":"C"},{"n":"C++"},{"n":"PHP"},{"n":"JAVA"}]},
{"p":"数据库","c":[{"n":"Mysql"},{"n":"SqlServer"},{"n":"Oracle"}]},
]},
prov:"",
city:"",
dist:"",
nodata:"none"
});
你还可以利用PHP等后台语言将数据库中的数据转换成JSON格式,然后使用url参数指向后台地址也能实现无刷新联动效果。
$("#city").citySelect({
url:"data.php"
});
var data = [{
id: 1,
pid: 0,
name: '水果'
},
{
id: 2,
pid: 0,
name: '蔬菜'
},
{
id: 3,
pid: 1,
name: '苹果'
},
{
id: 4,
pid: 1,
name: '香蕉'
},
{
id: 5,
pid: 2,
name: '萝卜'
},
{
id: 6,
pid: 2,
name: '茄子'
},
{
id: 7,
pid: 1,
name: '芒果'
},
{
id: 8,
pid: 1,
name: '桔子'
},
{
id: 9,
pid: 2,
name: '青瓜'
},
{
id: 10,
pid: 2,
name: '苦瓜'
}];
window.onload = function() {
var type_sel = document.createElement('select');
if (document.attachEvent) type_sel.attachEvent('onchange', change);
else type_sel.addEventListener('change', change, true);
createOptions(type_sel, 0);
}
function change(e) {
var o = e.srcElement || e.target,
child_sel = document.createElement('select'),
pid = o.value,
obj = document.getElementsByTagName('select')[1];
obj obj.parentNode.removeChild(obj);
createOptions(child_sel, pid);
}
function createOptions(sel, pid) {
var option = document.createElement('option');
option.value = '';
option.innerHTML = '请选择';
sel.appendChild(option);
for (var i in data) {
var d = data[i];
if (d.pid == pid) {
var option = document.createElement('option');
option.value = d.id;
option.innerHTML = d.name;
sel.appendChild(option);
}
}
document.body.appendChild(sel);
}
有一个是jQuery插件叫mcdropdown4062下拉后可以显示多级菜单2我觉得可以替代多级联动下拉列表
查询呗,是系统的话,这些数据在数据库中应该有保存的把,到时候用jquery的change方法来监听选着事件,然后去查