做联动效果,若是用纯JavaScript来做,往往需要辅助页面保存需要刷新的结果集,然后渲染到原页面。考虑将需要动态刷新的内容自动拼接到前一个下拉框之后,当前一个下拉框onchange后,同级的后面的下拉框全部清除,然后重新拼接刷新的内容。用JQuery实现比较容易,代码以省市联动效果为例实现。
function refreshCity(){
if($('#provinceCode').find('option:selected').val() == ""){
$('#provinceCode').parent().nextAll('lable').remove();
return;
}
//省份名称
var provinceName = $('#provinceCode').find('option:selected').text();
provinceName = provinceName.substring(0,provinceName.length-4);
// 发出Json请求,查询子下拉框选项数据
$.getJSON("<%=basePath%>baseInfo_getCitiesByProvinceId", {
proviceCode : $('#provinceCode').val()
}, function(data) {
// 如果有子选项,则创建子下拉框
if(data != null){
// 删除下拉框父级
后的所有同级
$('#provinceCode').parent().nextAll('lable').remove();
var childId = "city";
// 判断是否存在下一级下拉框 不存在就创建
if($('#'+childId).length == 0){
// 创建一个并创建一个").appendTo($('#base'));
}else{
//清空子下拉框内容
$('#' + childId).empty();
}
// 遍历json串,填充子下拉框
$.each(data.city, function(i, item) {
$('#' + childId).append(
"");
});
}
});
}