jquery 实现的省市区级联,无ajax

转自:http://blog.csdn.net/kituq520/article/details/6564230

 

以下是页面代码


	#foreach($data in $conAddressBean.provinceCode)
		
	#end
	#foreach($data in $conAddressBean.cityCode)
		
	#end
	#foreach($data in $conAddressBean.countyCode)
		
	#end
	
	
 
	
 
	


 

以下是js代码

其中有专门保存数据的字符串

// JavaScript Document
$(document).ready(function(){
	// 设置数据缓存 使用HashMap方式	
	cacheData(cityCountyStr);
	cacheData(provinceCityStr);	
	
	$("select[rel='province']").change(dochangeSelect);
	$("select[rel='city']").change(dochangeSelect);
	setDefault();
});
function setDefault(){
	$("[rel='con_address']").each(function(index){
		//设置省的默认参数	
		var currentProValue = getCurrentValue("province",index);
		setValue($(this),"province",index,currentProValue);	
		
		var currentCity = getCurrentValue("city",index);
		doLoadSelect($(this).find("select[rel='province']"),currentCity);
		
		var currentCounty = getCurrentValue("county",index);
		doLoadSelect($(this).find("select[rel='city']"),currentCounty);		
	});	
}
function getCurrentValue(relName,index){
	return $("[rel='con_address']").eq(0).find("[rel='"+relName+"']:hidden").eq(index).attr("value");
}
function setValue(parsent,name,index,currentValue){	
	$(parsent).find("select[rel='"+name+"'] > option").each(function(){
		if($(this).attr("value")==currentValue){
			$(this).attr("selected","selected");
			return false; 
		}								  
	})
}

function doLoadSelect(obj,nexeDetaultValue){
	var thisName = $(obj).find("option:selected").text();
	var thisValue = $(obj).find("option:selected").attr("value");
	//alert("thisName="+thisName+"   thisValue="+thisValue);
	$(obj).nextAll().each(function(){
		$(this).find("option").eq(0).nextAll().remove();		
	});	
	if(thisValue=='-1'){
		return ;
	}
	//获取下一级 所有的地区
	var childrens = hashMap.Get(thisName);
	//找到下一个select集合,按照省市区 排名的
	var objThisSelect = $(obj).next().eq(0);	
	var template = $(objThisSelect).find("option").eq(0);
	$(template).removeAttr("selected");
	var childrensAttr = childrens.split(",");
	var keyVal = "";
	for(var i=0;i

你可能感兴趣的:(UI前端技术)