JavaScript 三级级联菜单

< HTML >
< HEAD >
< TITLE > 合同申请 </ TITLE >
< meta  http-equiv ="Content-Type"  content ="text/html; charset=gb2312" >
< SCRIPT  LANGUAGE  = JavaScript >
/* * Define object Dsy 构造器
fieldValues - 三个表单域的名称, 可以通过 request.getParameter(xxx) 取值
defalutOptions - 默认选项
*/
function  Dsy(fieldValues, defalutOptions){
  
this .Items  =  {};
  
this .defalutOptions  =  defalutOptions; //  默认选项  
   this .fieldValues  =  fieldValues; //  三个表单域的名称


Dsy.prototype.add 
=   function (id, iArray){
  
this .Items[id]  =  iArray;


Dsy.prototype.Exists 
=   function (id){
  
if  ( typeof ( this .Items[id])  ==   " undefined " )
    
return   false ;
  
return   true ;
}; 

Dsy.prototype.setup 
=   function () {
    
this .bean_change( 0 );


//  This prototype method added by BeanSoft Studio
Dsy.prototype.bean_change  =   function (v){
  
var  str  =   " 0 " ;
  
for  (i  =   0 ; i  <  v; i ++ ){
    str 
+=  ( " _ "   +  (document.getElementById( this .fieldValues[i]).selectedIndex  -   1 ));
  }; 

  
var  ss  =  document.getElementById( this .fieldValues[v]);
  
//  Avoid a null exception
   if (ss  ==   null return

    
with (ss){
      length 
=   0 ;
      options[
0 =   new  Option( this .defalutOptions[v],  this .defalutOptions[v]);
      
if  (v  &&  document.getElementById( this .fieldValues[v  -   1 ]).selectedIndex  >   0   ||   ! v){
        
if  ( this .Exists(str)){
          array 
=   this .Items[str];
          
for  (i  =   0 ; i  <  array.length; i ++ )
            options[length] 
=   new  Option(array[i], array[i]);
          
if  (v)
            options[
1 ].selected  =   true ;
        }
      } 

      
if  ( ++ <  s.length){
        
this .bean_change(v);
      }
    }


  
function  change(v){    
    dsy.bean_change(v);
//  Call test prototype
  } 

  
//  Write form data string, 输出表单脚本代码
   //  dsy, object name
   //  varName, 变量名
   function  toString(dsy, varName) {
    
var  str  =   "" ;
    
for (i  =   0 ; i  <  dsy.fieldValues.length; i ++ ) {
        str 
+=   " <select id=/ ""  + dsy.fieldValues[i] +  " / "  onChange=/ ""  + varName +  " .bean_change( "  + (i + 1)
            + 
" );/ " ></select>/r/n " ;
    }
    str 
+=   " <br/> " ;
    
return  str;
  } 

//  第一个对象
   var  dsy  =   new  Dsy([ " s1 " " s2 " " s3 " ], [ " 销售方名称 " " 销售方联系人 " " 联系电话 " ]);
  
var  dsy1  =   new  Dsy([ " s4 " " s5 " " s6 " ],  [ " 最终用户名称 " " 最终用户联系人 " " 联系电话 " ]);
  
var  dsy2  =   new  Dsy(s  =  [ " s7 " " s8 " " s9 " ], [ " 厂商 " " 厂商销售 " " 联系电话 " ]); 

//  填入数据, 重复的代码
  dsy.add( " 0 " , [ " 单位1 " " 单位2 " ]); 

  dsy.add(
" 0_0 " , [ " 单位1联系人_1 " " 单位1联系人_2 " ]);
  dsy.add(
" 0_0_0 " , [ " 单位1联系人_1联系电话 " ]);
  dsy.add(
" 0_0_1 " , [ " 单位1联系人_2联系电话 " ]); 

  dsy.add(
" 0_1 " , [ " 单位2联系人_1 " " 单位2联系人_2 " ]);
  dsy.add(
" 0_1_0 " , [ " 单位2联系人_1联系电话 " ]);
  dsy.add(
" 0_1_1 " , [ " 单位2联系人_2联系电话 " ]); 

  dsy1.add(
" 0 " , [ " 最终用户1 " " 最终用户2 " ]); 

  dsy1.add(
" 0_0 " , [ " 最终用户1_联系人1 " " 最终用户1_联系人2 " ]);
  dsy1.add(
" 0_0_0 " , [ " 最终用户1_联系人1_电话 " ]);
  dsy1.add(
" 0_0_1 " , [ " 最终用户1_联系人2_电话 " ]); 

  dsy1.add(
" 0_1 " , [ " 最终用户2_联系人1 " " 最终用户2_联系人2 " ]);
  dsy1.add(
" 0_1_0 " , [ " 最终用户2_联系人1_电话 " ]);
  dsy1.add(
" 0_1_1 " , [ " 最终用户2_联系人2_电话 " ]); 

  dsy2.add(
" 0 " , [ " BEA " " Horizon " ]); 

  dsy2.add(
" 0_0 " , [ " 张学友 " " BeanSoft " ]);
  dsy2.add(
" 0_0_0 " , [ " 1234567890 " ]);
  dsy2.add(
" 0_0_1 " , [ " beansoft@126.com " ]); 

  dsy2.add(
" 0_1 " , [ " AAA " " BBB " ]);
  dsy2.add(
" 0_1_0 " , [ " AAA_99999 " ]);
  dsy2.add(
" 0_1_1 " , [ " bbb_88888 " ]); 

  
function  setup(){   //  Initialize the object
    dsy.setup();  // 依次调用 setup
    dsy1.setup();
    dsy2.setup();
  } 

function  prints1(){
    alert(document.frm.s1.value 
+   "   "   +  document.frm.s2.value  +   "   "   +  document.frm.s3.value  + " /r/n " );


</ SCRIPT >  

</ head >
< body  bgcolor ="#E0E0E0"  onload ="setup()" >
多级关联菜单:
< form  name ="frm" >  

<!--  方式1: 手工输出 HTML 代码, 便于排版
<select id="s1" onChange="dsy.bean_change(1);"></select>
<select id="s2" onChange="dsy.bean_change(2);"></select>
<select id="s3" onChange="dsy.bean_change(3);"></select>
<br>
<br>
<br>
<select id="s4" onChange="dsy1.bean_change(1);"></select>
<select id="s5" onChange="dsy1.bean_change(2);"></select>
<select id="s6" onChange="dsy1.bean_change(3);"></select>
<br>
<br>
<br>
<select id="s7" onChange="dsy2.bean_change(1);"></select>
<select id="s8" onChange="dsy2.bean_change(2);"></select>
<select id="s9" onChange="dsy2.bean_change(3);"></select>
-->
< SCRIPT  LANGUAGE ="JavaScript" >
<!--
//  方式2: 脚本输出表单 HTML 代码, 代码和上面注释掉的类似
document.write(toString(dsy,  " dsy " ));
document.write(toString(dsy1, 
" dsy1 " ));
document.write(toString(dsy2, 
" dsy2 " ));
// -->
</ SCRIPT >  

< input  type =button  name =b1  value ="监测"  onclick ="prints1()" >  

</ form >  

</ body >
</ html >  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值