📄 rela.js
字号:
/***************framework component 1**************/
//class RelaChange
function RelaChange(next,relaList,codeDescList,select){
if (select==null) return ; //exception exit
this.select=select;
this.select.owner=this;
this.select.onchange=function(){
if (this.owner.next!=null)
this.owner.next.change(this.value);
};
this.next=next;
this.relaList=relaList;
this.codeDescList=codeDescList;
}
RelaChange.prototype.init=function(){
this.select.options.length = 0;
var codeDescList=this.codeDescList;
for(var i=0;i<codeDescList.length;i++){
var item = new Option(codeDescList[i][1],codeDescList[i][0]);
this.select.options.add(item);
}
this.select.options[0].selected = true;
this.next.change(this.select.options[0].value);
}
RelaChange.prototype.change=function(parentKey){
//alert("parentKey:"+parentKey);
var relaList=this.relaList;
//alert("relaList.length:"+relaList.length);
for(var i=0;i<relaList.length;i++){
if (relaList[i][0]==parentKey){
var childList=relaList[i][1];
this.update(childList);
break;
}
}
}
RelaChange.prototype.update=function(keyList){
this.select.options.length = 0;
var n=0;
var codeDescList=this.codeDescList;
//alert("codeDescList.length:"+codeDescList.length);
for(var i=0;i<codeDescList.length;i++){
for(var j=0;j<keyList.length;j++){
if (codeDescList[i][0]==keyList[j]){
var item = new Option(codeDescList[i][1],codeDescList[i][0]);
this.select.options.add(item);
n++;
break;
}
}
if (n==keyList.length) break;
}
this.select.options[0].selected = true;
if (this.next!=null){
this.next.change(keyList[0]);
}
}
/*****************省份 城市 地区 具体实现*********************/
function Province(next,relaList,codeDescList,select){
RelaChange.call(this,next,relaList,codeDescList,select);
}
Province.prototype=new RelaChange();
function City(next,relaList,codeDescList,select){
RelaChange.call(this,next,relaList,codeDescList,select);
}
City.prototype=new RelaChange();
function Area(next,relaList,codeDescList,select){
RelaChange.call(this,next,relaList,codeDescList,select);
}
Area.prototype=new RelaChange();
/********framework component 2*************/
//Class InitRelaChange
function InitRelaChange(){
this.relaList=new Array();
this.codeDescList=new Array();
}
InitRelaChange.prototype.initRelaList=function(s){
};
InitRelaChange.prototype.initCodeDescList=function(s){
};
InitRelaChange.prototype.initDataList=function(s1,s2){
this.initRelaList(s1);
this.initCodeDescList(s2);
};
/**********省份 城市 地区 具体实现*************/
function InitProvince(){
InitRelaChange.call(this);
}
InitProvince.prototype=new InitRelaChange();
InitProvince.prototype.initRelaList=function(s){
}
//格式: code:desc,code:desc,
InitProvince.prototype.initCodeDescList=function(s){
var list=this.codeDescList;
var a=s.split(",");
for(var i=0;i<a.length;i++){
b=a[i].split(":");
list[i]=b;
}
}
function InitCity(){
InitProvince.call(this);
this.len=2;
}
InitCity.prototype=new InitProvince();
//格式:code,code
InitCity.prototype.initRelaList=function(s){
var len=this.len;
//alert("len:"+this.len);
var list=this.relaList;
//alert("s:"+s);
var a=s.split(",");
var s1="";
for(var i=0;i<a.length;i++){
var temp=a[i].substr(0,len)+",";
if (s1.indexOf(temp)==-1){
s1+=temp;
}
}
s1=s1.substr(0,s1.length-1);
//alert("s1:"+s1);
var b=s1.split(",");
for(var i=0;i<b.length;i++){
var ary=new Array();
ary[0]=b[i];
ary[1]=new Array();
var n=0;
for(var j=0;j<a.length;j++){
if (a[j].indexOf(b[i])==0)
ary[1][n++]=a[j];
}
list[i]=ary;
}
}
function InitArea(){
InitCity.call(this);
this.len=4;
}
InitArea.prototype=new InitCity();
/*省份 城市 地区 调用函数*/
function proControl(province,city,area,pro1,pro2,city1,city2,area1,area2){
var initObj=new InitArea();
initObj.initDataList(area1,area2);
//alert("initArea.relaList.length:"+initObj.relaList.length);
var areaObj=new Area(null,initObj.relaList,initObj.codeDescList,area);
var initObj=new InitCity();
initObj.initDataList(city1,city2);
var cityObj=new City(areaObj,initObj.relaList,initObj.codeDescList,city);
var initObj=new InitProvince();
initObj.initDataList(pro1,pro2);
var proObj=new Province(cityObj,initObj.relaList,initObj.codeDescList,province);
proObj.init();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -