简易二级联动下拉框
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<style type="text/css">
.btn{
outline:none; /**按钮区域的边框,非按钮边框**/
cursor:pointer;
border: 1px solid #dedede;
border-color: #06c;
background-color: #06c;
-webkit-border-radius: 10px;/**兼容苹果;谷歌**/
-moz-border-radius: 10px;/**兼容火狐浏览器*/
border-radius:10px;/**圆角属性,IE9+、Firefox 4+、Chrome、Safari 5+ 以及 Opera 支持 border-radius,使用时需要放在-webkit、-moz之后**/
color:#FFF;/**按钮字体颜色**/
}
.inputInterval{/**输入框之间的间距**/
margin-left:10px;
margin-right:10px;
}
.area{
width:500px;
height:500px;
margin:200px 800px;
}
</style>
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<script>
// 模拟数据
var pros = ['省份1','省份2','省份3'];
var cities = [['省1_市1','省1_市2','省1_市3'],['省2_市1','省2_市2','省2_市3'],['省3_市1','省3_市2','省3_市3']];
<!--页面加载时,为组件注册事件-->
$(function(){
$("#add").on('click',function(e){
});
// 开发时,需先加载省份数据(全局变量保存)
// 页面加载时为省份添加数据
loadData("area");
});
var lineNum = 1; // 行数
var lineFlag = 1; //每行组件id标志
// 加载省份
function loadData(container){
// 省份数据
var proHtml = "<div id='area"+lineFlag+"'>省份:<select id='province"+lineFlag+"' onchange='loadCity(this);'><option value='0'>--省份--</option></select></div>";
$("#"+container).append(proHtml);
// 填充省份数据
for(var i=0;i<pros.length;i++){
$("#province"+lineFlag).append('<option value='+pros[i]+'>'+pros[i]+'</option>');
}
// 城市数据
var cityHtml = "<span id='city"+lineFlag+"' class='inputInterval'>市:<select id='city_"+lineFlag+"'><option value='0'>--城市--</option></span>";
$("#area"+lineFlag).append(cityHtml);
// 操作(增加、删除)
if(lineFlag===1){
$("#area"+lineFlag).append("<input id='add_"+lineFlag+"' type='button' class='btn' value='增加' onclick='addNewLine()'>");
}else{
$("#area"+lineFlag).append("<input id='del_"+lineFlag+"' type='button' class='btn' value='删除' onclick='delNewLine(this)'>");
}
}
// 加载市
function loadCity(province){
// 获取元素下标
var proIndex = jQuery.inArray(province.value,pros);
// 取得省份对应的城市
var targetCities = cities[proIndex];
// 当前行标志
var currentLineId = province.parentElement.id;
var index = parseInt(currentLineId.substring(currentLineId.length-1,currentLineId.length));
// 清空城市数据(避免重复追加)
$("#city"+index).children().empty();
// 添加新城市数据
for(var i=0;i<targetCities.length;i++){
$("#city_"+index).append('<option value='+targetCities[i]+'>'+targetCities[i]+'</option>');
}
}
// 添加新行
function addNewLine(){
if(lineNum>4){
alert("最多只能添加5条!!!");
return;
}
lineNum += 1;
lineFlag += 1;
loadData("area");
}
// 删除新行
function delNewLine(param){
// 添加 增加or删除 按钮
var currentLineId = param.parentElement.id;
var index = parseInt(currentLineId.substring(currentLineId.length-1,currentLineId.length)); // 当前行标志
$("#area"+index).remove();
lineNum -= 1;
}
</script>
</head>
<div>
<div id="area" class="area">
</div>
</div>
</html>


浙公网安备 33010602011771号