自己写的一个二级联动下拉框,有什么不足,请指正。
<
meta
http-equiv
="Content-Type"
content
="text/html; charset=utf-8"
/>
< strong > 二级联动下拉框、二级联动下拉菜单、二级联动下拉列表: </ strong >< br />< br />
< script language = "JavaScript" > ...
/**//*
* 函数:Link2_POption_Change(Arr, PSelect, SSelect)
* 说明:一级下拉框改变时初始化二级下拉框的选项
< strong > 二级联动下拉框、二级联动下拉菜单、二级联动下拉列表: </ strong >< br />< br />
< script language = "JavaScript" > ...
/**//*
* 函数:Link2_POption_Change(Arr, PSelect, SSelect)
* 说明:一级下拉框改变时初始化二级下拉框的选项
* 作者:lg970044
* 输入:
* @参数 {Array}Arr 选项信息数组
* @参数 {String || Object}PSelect 一级下拉框的ID或对象
* @参数 {String || Object}SSelect 二级下拉框的ID或对象
* #参数 {String}EnableTip 是否加上提示项
* #参数 {String}TipName 提示项名称
* 输出:
* 无
*/
function Link2_POption_Change(Arr, PSelect, SSelect)
...{
if (typeof PSelect != 'object')...{PSelect = document.getElementById(PSelect);}
if (typeof SSelect != 'object')...{SSelect = document.getElementById(SSelect);}
//默认参数EnableTip(是否加上提示项)设为否
var EnableTip=arguments[3]?arguments[3]:'N';
//默认参数TipName(提示项名称)设为'请选择'
var TipName=arguments[4]?arguments[4]:'请选择';
var i=0,j=0;
//清空二级下拉框选项
SSelect.length = 0;
if (EnableTip=='Y')...{
//二级下拉框添加提示项
SSelect.options[i] = new Option(TipName, '');
i++;
}
//取得一级下拉框选择的值
var PSelectValue=PSelect.options[PSelect.selectedIndex].value;
//为二级下拉框添加选项
for (j=0; j < Arr.length; j++)...{
if (Arr[j][2] == PSelectValue)...{
SSelect.options[i] = new Option(Arr[j][0], Arr[j][1]);
i++;
}
}
}
/**//*
* 函数:Link2_PSOption_Init(Arr, PSelect, SSelect)
* 说明:初始化二级联动下拉框的选项
* 输入:
* @参数 {Array}Arr 选项信息数组
* @参数 {String || Object}PSelect 一级下拉框的ID或对象
* @参数 {String || Object}SSelect 二级下拉框的ID或对象
* #参数 {Number}PSelectValue 一级下拉框的预设值
* #参数 {Number}SSelectValue 二级下拉框的预设值
* #参数 {String}PEnableTip 一级下拉框是否加上提示项
* #参数 {String}PTipName 一级下拉框提示项名称
* #参数 {String}SEnableTip 二级下拉框是否加上提示项
* #参数 {String}STipName 二级下拉框提示项名称
* 输出:
* 无
*/
function Link2_PSOption_Init(Arr, PSelect, SSelect)
...{
if (typeof PSelect != 'object')...{PSelect = document.getElementById(PSelect);}
if (typeof SSelect != 'object')...{SSelect = document.getElementById(SSelect);}
//默认参数PSelectValue(一级下拉框的预设值)设为0
var PSelectValue=arguments[3]?arguments[3]:0;
//默认参数SSelectValue(二级下拉框的预设值)设为0
var SSelectValue=arguments[4]?arguments[4]:0;
//默认参数PEnableTip(一级下拉框是否加上提示项)设为否
var PEnableTip=arguments[5]?arguments[5]:'N';
//默认参数PTipName(一级下拉框提示项名称)设为'请选择'
var PTipName=arguments[6]?arguments[6]:'请选择';
//默认参数SEnableTip(二级下拉框是否加上提示项)设为否
var SEnableTip=arguments[7]?arguments[7]:'N';
//默认参数STipName(二级下拉框提示项名称)设为'请选择'
var STipName=arguments[8]?arguments[8]:'请选择';
var i=0,ii=0,j=0;
if (SSelectValue>0)...{
//根据二级下拉框的预设值,计算出一级下拉框的值
for (i=0;i < Arr.length; i++)...{
if (Arr[i][2] > 0 && Arr[i][1] == SSelectValue) PSelectValue=Arr[i][2];
}
}
//初始化下拉框选项
i=0;
ii=0;
//清空一级下拉框选项
PSelect.length = 0;
if (PEnableTip=='Y')...{
//一级下拉框添加提示项
PSelect.options[i] = new Option(PTipName, '');
i++;
}
//清空二级下拉框选项
SSelect.length = 0;
if (SEnableTip=='Y')...{
//二级下拉框添加提示项
SSelect.options[ii] = new Option(STipName, '');
ii++;
}
//为一级下拉框添加选项
for (j=0; j < Arr.length; j++)...{
if (Arr[j][2] == 0)...{
PSelect.options[i] = new Option(Arr[j][0], Arr[j][1]);
if (Arr[j][1] == PSelectValue)...{
PSelect.options[i].selected=true;
}
i++;
}
}
//取得一级下拉框的值
if (PSelectValue == 0) PSelectValue = PSelect.options[0].value;
//为二级下拉框添加选项
if (PSelectValue > 0)...{
for (j=0; j < Arr.length; j++)...{
if (Arr[j][2] == PSelectValue)...{
SSelect.options[ii] = new Option(Arr[j][0], Arr[j][1]);
if (Arr[j][1] == SSelectValue)...{
SSelect.options[ii].selected=true;
}
ii++;
}
}
}
}
</ script >
< script language ="javascript" > ...
var OptionArr = new Array();
//OptionArr[序号] = new Array('名称','值','上级关联值');
OptionArr[0] = new Array('图书类','1','0');
OptionArr[1] = new Array('小说','1','1');
OptionArr[2] = new Array('文学','2','1');
OptionArr[3] = new Array('传记','3','1');
OptionArr[4] = new Array('音乐类','2','0');
OptionArr[5] = new Array('古典','4','2');
OptionArr[6] = new Array('影视类','3','0');
OptionArr[7] = new Array('电视剧','5','3');
OptionArr[8] = new Array('电影','6','3');
OptionArr[9] = new Array('百货类','4','0');
OptionArr[10] = new Array('家居','7','4');
OptionArr[11] = new Array('化妆品','8','4');
</ script >
示例1:
< select id ="class1id" onChange ="Link2_POption_Change(OptionArr,'class1id','class2id');" >
</ select >
< select id ="class2id" >
</ select >
< script language = "JavaScript" > ...
Link2_PSOption_Init(OptionArr,'class1id','class2id');
</ script >
< br />< br />
示例2:
< select id ="class11id" onChange ="Link2_POption_Change(OptionArr,'class11id','class22id','Y','请选择小类');" >
</ select >
< select id ="class22id" >
</ select >
< script language = "JavaScript" > ...
Link2_PSOption_Init(OptionArr,'class11id','class22id',0,3,'Y','请选择大类','Y','请选择小类');
</ script >
* 输入:
* @参数 {Array}Arr 选项信息数组
* @参数 {String || Object}PSelect 一级下拉框的ID或对象
* @参数 {String || Object}SSelect 二级下拉框的ID或对象
* #参数 {String}EnableTip 是否加上提示项
* #参数 {String}TipName 提示项名称
* 输出:
* 无
*/
function Link2_POption_Change(Arr, PSelect, SSelect)
...{
if (typeof PSelect != 'object')...{PSelect = document.getElementById(PSelect);}
if (typeof SSelect != 'object')...{SSelect = document.getElementById(SSelect);}
//默认参数EnableTip(是否加上提示项)设为否
var EnableTip=arguments[3]?arguments[3]:'N';
//默认参数TipName(提示项名称)设为'请选择'
var TipName=arguments[4]?arguments[4]:'请选择';
var i=0,j=0;
//清空二级下拉框选项
SSelect.length = 0;
if (EnableTip=='Y')...{
//二级下拉框添加提示项
SSelect.options[i] = new Option(TipName, '');
i++;
}
//取得一级下拉框选择的值
var PSelectValue=PSelect.options[PSelect.selectedIndex].value;
//为二级下拉框添加选项
for (j=0; j < Arr.length; j++)...{
if (Arr[j][2] == PSelectValue)...{
SSelect.options[i] = new Option(Arr[j][0], Arr[j][1]);
i++;
}
}
}
/**//*
* 函数:Link2_PSOption_Init(Arr, PSelect, SSelect)
* 说明:初始化二级联动下拉框的选项
* 输入:
* @参数 {Array}Arr 选项信息数组
* @参数 {String || Object}PSelect 一级下拉框的ID或对象
* @参数 {String || Object}SSelect 二级下拉框的ID或对象
* #参数 {Number}PSelectValue 一级下拉框的预设值
* #参数 {Number}SSelectValue 二级下拉框的预设值
* #参数 {String}PEnableTip 一级下拉框是否加上提示项
* #参数 {String}PTipName 一级下拉框提示项名称
* #参数 {String}SEnableTip 二级下拉框是否加上提示项
* #参数 {String}STipName 二级下拉框提示项名称
* 输出:
* 无
*/
function Link2_PSOption_Init(Arr, PSelect, SSelect)
...{
if (typeof PSelect != 'object')...{PSelect = document.getElementById(PSelect);}
if (typeof SSelect != 'object')...{SSelect = document.getElementById(SSelect);}
//默认参数PSelectValue(一级下拉框的预设值)设为0
var PSelectValue=arguments[3]?arguments[3]:0;
//默认参数SSelectValue(二级下拉框的预设值)设为0
var SSelectValue=arguments[4]?arguments[4]:0;
//默认参数PEnableTip(一级下拉框是否加上提示项)设为否
var PEnableTip=arguments[5]?arguments[5]:'N';
//默认参数PTipName(一级下拉框提示项名称)设为'请选择'
var PTipName=arguments[6]?arguments[6]:'请选择';
//默认参数SEnableTip(二级下拉框是否加上提示项)设为否
var SEnableTip=arguments[7]?arguments[7]:'N';
//默认参数STipName(二级下拉框提示项名称)设为'请选择'
var STipName=arguments[8]?arguments[8]:'请选择';
var i=0,ii=0,j=0;
if (SSelectValue>0)...{
//根据二级下拉框的预设值,计算出一级下拉框的值
for (i=0;i < Arr.length; i++)...{
if (Arr[i][2] > 0 && Arr[i][1] == SSelectValue) PSelectValue=Arr[i][2];
}
}
//初始化下拉框选项
i=0;
ii=0;
//清空一级下拉框选项
PSelect.length = 0;
if (PEnableTip=='Y')...{
//一级下拉框添加提示项
PSelect.options[i] = new Option(PTipName, '');
i++;
}
//清空二级下拉框选项
SSelect.length = 0;
if (SEnableTip=='Y')...{
//二级下拉框添加提示项
SSelect.options[ii] = new Option(STipName, '');
ii++;
}
//为一级下拉框添加选项
for (j=0; j < Arr.length; j++)...{
if (Arr[j][2] == 0)...{
PSelect.options[i] = new Option(Arr[j][0], Arr[j][1]);
if (Arr[j][1] == PSelectValue)...{
PSelect.options[i].selected=true;
}
i++;
}
}
//取得一级下拉框的值
if (PSelectValue == 0) PSelectValue = PSelect.options[0].value;
//为二级下拉框添加选项
if (PSelectValue > 0)...{
for (j=0; j < Arr.length; j++)...{
if (Arr[j][2] == PSelectValue)...{
SSelect.options[ii] = new Option(Arr[j][0], Arr[j][1]);
if (Arr[j][1] == SSelectValue)...{
SSelect.options[ii].selected=true;
}
ii++;
}
}
}
}
</ script >
< script language ="javascript" > ...
var OptionArr = new Array();
//OptionArr[序号] = new Array('名称','值','上级关联值');
OptionArr[0] = new Array('图书类','1','0');
OptionArr[1] = new Array('小说','1','1');
OptionArr[2] = new Array('文学','2','1');
OptionArr[3] = new Array('传记','3','1');
OptionArr[4] = new Array('音乐类','2','0');
OptionArr[5] = new Array('古典','4','2');
OptionArr[6] = new Array('影视类','3','0');
OptionArr[7] = new Array('电视剧','5','3');
OptionArr[8] = new Array('电影','6','3');
OptionArr[9] = new Array('百货类','4','0');
OptionArr[10] = new Array('家居','7','4');
OptionArr[11] = new Array('化妆品','8','4');
</ script >
示例1:
< select id ="class1id" onChange ="Link2_POption_Change(OptionArr,'class1id','class2id');" >
</ select >
< select id ="class2id" >
</ select >
< script language = "JavaScript" > ...
Link2_PSOption_Init(OptionArr,'class1id','class2id');
</ script >
< br />< br />
示例2:
< select id ="class11id" onChange ="Link2_POption_Change(OptionArr,'class11id','class22id','Y','请选择小类');" >
</ select >
< select id ="class22id" >
</ select >
< script language = "JavaScript" > ...
Link2_PSOption_Init(OptionArr,'class11id','class22id',0,3,'Y','请选择大类','Y','请选择小类');
</ script >
详细内容见:http://www.qlolo.com/?m=pc&a=page_fh_diary&target_c_diary_id=874