?? area.js
字號:
var areaArray = new Array();
areaArray[0]=new Array('A00009','0','河南');
areaArray[1]=new Array('A00011','0','山東');
areaArray[2]=new Array('A00042','A00009','sdfasdfasdf');
function CLASS_LIANDONG_YAO(array)
{
//數(shù)組,聯(lián)動的數(shù)據(jù)源
this.array=array;
this.indexName='';
this.obj='';
//設(shè)置子SELECT
// 參數(shù):當(dāng)前onchange的SELECT ID,要設(shè)置的SELECT ID
this.subSelectChange=function(selectName1,selectName2)
{
//try
//{
var obj1=document.all[selectName1];
var obj2=document.all[selectName2];
var objName=this.toString();
var me=this;
var initArray = new Array();
for(var i=2;i<this.subSelectChange.arguments.length;i++){
initArray[i-2] = this.subSelectChange.arguments[i];
}
obj1.onchange=function(){
me.optionChange(this.options[this.selectedIndex].value,obj2.id);
for(var i=0;i<initArray.length;i++){
var initObj = document.all[initArray[i]];
initObj.length=0;
initObj.options[0]=new Option("請選擇",'');
}
}
}
//設(shè)置第一個SELECT
// 參數(shù):indexName指選中項,selectName指select的ID
this.firstSelectChange=function(indexName,selectName)
{
this.obj=document.all[selectName];
this.indexName=indexName;
this.optionChange(this.indexName,this.obj.id)
}
// indexName指選中項,selectName指select的ID
this.optionChange=function (indexName,selectName){
var obj1=document.all[selectName];
var me=this;
obj1.length=0;
obj1.options[0]=new Option("請選擇",'');
for(var i=0;i<this.array.length;i++){
if(this.array[i][1]==indexName){
obj1.options[obj1.length]=new Option(this.array[i][2],this.array[i][0]);
}
}
}
}
//這是調(diào)用代碼
var S_liandong = new CLASS_LIANDONG_YAO(areaArray); //設(shè)置數(shù)據(jù)源
var S_AreaSelect = new Array();
document.writeln("<SELECT ID=\"s_Option_Selct0\" NAME=\"s_Option_Selct0\"><OPTION selected>請選擇</OPTION></SELECT>");
S_AreaSelect[0] = "s_Option_Selct0";
S_AreaSelect[1] = "s_Option_Selct1";
document.writeln("<SELECT ID=\"s_Option_Selct1\" NAME=\"s_Option_Selct1\"><OPTION selected>請選擇</OPTION></SELECT>");
function initSelectOpt(){
S_liandong.firstSelectChange("0","s_Option_Selct0"); //設(shè)置第一個選擇框
S_liandong.subSelectChange("s_Option_Selct0","s_Option_Selct1"); //設(shè)置子級選擇框
}
function checkOneSelectOpt(obj){//檢查選擇框是否輸入了對應(yīng)的值
if(obj.value==""){
if(obj.length<=1){
return 0;
}else
return 1;
}else{
return 0;
}
}
function checkSelectOpt(obj){
setSelectRecValue();
if(checkOneSelectOpt(document.getElementById("s_Option_Selct0"))==0 && checkOneSelectOpt(document.getElementById("s_Option_Selct1"))==0){
return 0;
}else{
return 1;
}
}
var s_ValueRecObj;
function setSelectRecObj(obj){
s_ValueRecObj = document.getElementById(obj);
}
//設(shè)置最終的值
function setSelectRecValue(){
for(var i=S_AreaSelect.length;i>0;i--){//倒著找
var loObj = document.getElementById(S_AreaSelect[i-1]);
if(loObj!=null && loObj.length>1){
s_ValueRecObj.value = loObj.value;
break;
}
}
}
//獲取當(dāng)前選擇的值(允許不全部選擇)
function getSelectCurValue(){
var lsResult = "";
for(var i=S_AreaSelect.length;i>0;i--){//倒著找
var loObj = document.getElementById(S_AreaSelect[i-1]);
if(loObj!=null && loObj.length>1 && loObj.value!=""){
lsResult = loObj.value;
break;
}
}
return lsResult;
}
//獲取當(dāng)前選擇的值(必須選擇最低一級)
function getMustSelectValue(){
var lsResult = "";
for(var i=S_AreaSelect.length;i>0;i--){//倒著找
var loObj = document.getElementById(S_AreaSelect[i-1]);
if(loObj!=null && loObj.length>1){
lsResult = loObj.value;
break;
}
}
return lsResult;
}
function initSelectDataList(iIndex,strParentValue,strDefaultValue){
var loTargetSelect = document.getElementById("s_Option_Selct"+(iIndex-1));
if(loTargetSelect==null) return;
loTargetSelect.length=0;
loTargetSelect.options[0]=new Option("請選擇",'');
for(var i=0;i<areaArray.length;i++){
if(areaArray[i][1]==strParentValue){//同一個父級
loTargetSelect.options[loTargetSelect.length]=new Option(areaArray[i][2],areaArray[i][0]);
if(areaArray[i][0]==strDefaultValue){
loTargetSelect.options[loTargetSelect.length-1].selected = true;
}
}
}
if(strParentValue=="0"){//頂級,不需要再迭代
}else{
initSelectDataList(iIndex-1,getSelctParentId(strParentValue),strParentValue);//繼續(xù)上一個SELECT框的初始化
}
}
function getSelctParentId(strValue){
var strParentValue = "";
//查出其上級的VALUE,然后設(shè)置
for(var i=0;i<areaArray.length;i++){
if(areaArray[i][0]==strValue){
strParentValue = areaArray[i][1];
break;
}
}
return strParentValue;
}
function getSelectValueIndex(strValue,iLayer){
var iReturnLayer = -1;
for(var i=0;i<areaArray.length;i++){
if(areaArray[i][0]==strValue){
iReturnLayer = 1;
if(areaArray[i][1]=="0"){
iLayer = 1;
}else{
iLayer = getSelectValueIndex(areaArray[i][1],iLayer+1) + 1;
}
break;
}else{
}
}
if(iReturnLayer<0) return -1;
return iLayer;
}
function setCurSelectValue(strValue){
if(strValue==""){//沒有選擇任何值,就使用默認(rèn)的初始化
return;
}
//初始化
var iCurIndex = getSelectValueIndex(strValue,1);
if(iCurIndex<0) return;
initSelectDataList(iCurIndex,getSelctParentId(strValue),strValue);
//同時需要設(shè)置最后一個選擇項的下一級
if(iCurIndex<S_AreaSelect.length){//還有下一級
initSelectDataList(iCurIndex+1,strValue,"");
}
}
initSelectOpt();
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -