cFormSelect

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>shawl.qiu template</title>
<script type="text/javascript">
//<![CDATA[
 var str='4##网络编程##15##Flash##@4##网络编程##20##HTML##@4##网络编程##21##XML##@4##网络编程##22##ASP##@4##网络编程##23##JSP##@4##网络编程##24##PHP##@4##网络编程##25##CGI##@4##网络编程##26##.NET##@4##网络编程##27##Script##@4##网络编程##87##CSS##@4##网络编程##154##RegExp-正则##@4##网络编程##191##Java  ##@4##网络编程##192##Perl  ##@4##网络编程##207##Ajax##@4##网络编程##209##XHTML##@4##网络编程##217##书##@4##网络编程##225##shtml##@4##网络编程##226##安全信息##@4##网络编程##227##RBAC/权限设计##@4##网络编程##232##JScript/Server-Side##@4##网络编程##239##DOM##@4##网络编程##240##DHTML##@6##数据库##36##Access##@6##数据库##37##Oracle##@6##数据库##38##SQL Server##@6##数据库##39##MySQL##@6##数据库##208##ADO##@6##数据库##213##书##@6##数据库##218##Postgresql##@10##站点大事记##61##绿色进化 E-Studio_2004##@10##站点大事记##155##绿色学院 - Green Institute_2006##@14##读书记##177##文学手记##@14##读书记##178##文学札记##@14##读书记##220##IT-札记##@14##读书记##221##WSJ##@14##读书记##231##杂文##@14##读书记##234##优美歌词/诗词##@23##海纳百川##12##办公软件##@23##海纳百川##13##网页制作##@23##海纳百川##14##图象处理##@23##海纳百川##88##服务器篇##@23##海纳百川##126##功能测试##@23##海纳百川##156##FromXoopsNewbb##@23##海纳百川##158##FromXoopsXphpbbi##@23##海纳百川##159##有容乃大##@23##海纳百川##160##FromXoopsGipbb##@23##海纳百川##161##FromXoopsGiss##@23##海纳百川##162##FromXoopsGiArticles##@23##海纳百川##166##FromXoopsNews##@23##海纳百川##167##FromPhpbbForum##@23##海纳百川##170##设计##@23##海纳百川##171##网站##@23##海纳百川##172##调查##@23##海纳百川##173##金融##@23##海纳百川##197##FromLeadBBS##@23##海纳百川##206##投稿/撰稿/征文##@23##海纳百川##219##操作系统/OS##@23##海纳百川##223##丛书##@50##技术记##127##开发-本站##@50##技术记##179##C##@50##技术记##180##Linux##@50##技术记##183##RegExp-正则表达式##@50##技术记##193##Javascript/Jscript##@50##技术记##194##SQL/数据库##@50##技术记##195##ASP##@50##技术记##196##HTML##@50##技术记##203##技术翻译##@50##技术记##210##技术趣味##@50##技术记##211##草稿箱##@50##技术记##212##WebServices##@50##技术记##214##CSS##@50##技术记##215##XHTML##@50##技术记##229##MS-SQL Server##@50##技术记##233##Javascript/Jscript(client-side)##@50##技术记##241##Ajax##@50##技术记##243##XML##@51##工具箱##64##实用链接##@51##工具箱##66##在线工具##@51##工具箱##71##配色方案##@51##工具箱##72##设计概念##@51##工具箱##175##行业常识##@51##工具箱##184##模板##@51##工具箱##204##基层工具##@51##工具箱##230##文件头/File Header##@56##英语角##96##基础资料##@56##英语角##198##英文/歌词&诗词##@56##英语角##199##英-英阅读##@56##英语角##200##英-汉阅读##@56##英语角##202##语法&写作##@57##程序设计##185##C语言##@57##程序设计##186##C++##@57##程序设计##187##C###@57##程序设计##188##VB##@57##程序设计##189##VF##@57##程序设计##190##Delphi##@59##人工智能##228##基础资料##@60##.Net##235##相关文摘##@60##.Net##236##C#/CSharp .net##@60##.Net##237##JScript .Net##@60##.Net##238##VB .net##@60##.Net##242##ASP.NET##@61##架构/概念##244##面向对象##@61##架构/概念##245##开发##@';
 
 οnlοad=function(){
 
  var sle=new cFormSelect();
 
   sle.source=str;
   sle.delimiter='##';
   sle.marker='@';
   sle.idBase='level';
   sle.defaultSelect='23,159'; // select by value
   sle.queryString='id,idsub';
  
   sle.getItem();
  
   sle=null;
 }

 /*-----------------------------------------------------------------------------------*/
  * shawl.qiu javascript 表单列表框联动类 v1.0
 /*-----------------------------------------------------------------------------------*/
 //---------------------------------begin class cFormSelect()-------------------------------//
 function cFormSelect(){ // shawl.qiu code
  //------------------------------------begin public variable
  //---------------begin about
  this.auSubject='shawl.qiu javascript 表单列表框联动类';
  this.auVersion='1.0';
  this.au='shawl.qiu';
  this.auEmail='shawl.qiu@gmail.com';
  this.auBlog='http://blog.csdn.net/btbtd';
  this.auCreateDate='2006-12-28';
  //---------------end about
  this.source='';          // 源字串
  this.sourceTemp='';
  this.delimiter='#';      // 列定界符
  this.marker='@';         // 行分界符
  this.idBase='level';     // 标签 ID 基准字串
  this.defaultSelect='';
  this.queryString='';
 
  this.item=0;
  this.count=1;
  //------------------------------------end public variable
 
  //------------------------------------begin public method
  this.getItem=function(){
   var sLcaStr=location.search;
   if(sLcaStr!=''){
    var arTemp=[];;
    if(tl.queryString!=''){
     tl.queryString.replace(/(.+?)(/,|$)/g,function($0,$1){
      //alert($1)
      var re=new RegExp($1+'/=([^/&/]+)');
       sLcaStr.replace(re,function($0,$1){
        arTemp[arTemp.length]=$1;
       });
       re=null;
     });
     tl.defaultSelect=arTemp.join(',');
    } // end if 2
   } // end if 1
  
   tl.item=fCkLevel(tl.source, tl.delimiter, tl.marker);
   fCreateOption(tl.source);
  } // end this.getItem
 
  this.οnchange=function(oSle){
   var nId=oSle.id.replace(tl.idBase,'');
    tl.count=nId;
    fSelectOpt(tl.count);
  } // end this.onchange
  //------------------------------------end public method
 
  //------------------------------------begin private variable
  var tl=this;
  //------------------------------------end private variable
 
  //------------------------------------begin private method
 
  function fStrQryStr(sStr,sPrefix){
   if(!sPrefix) sPrefix='';
   if(!sStr) sStr=location.search;
   if(sStr.length==0)return false;
   sStr.replace(/([^/=/?/&]+)/=([^/&/=]+)/g,function($0,$1,$2){
    eval(sPrefix+$1+'=$2');
   });
  } // end function fStrQryStr(sStr,sPrefix)
 
  function fSelectOpt(nPsti){
   nPsti-=0;

   for(var i=nPsti+1; i<=tl.item; i++){
    var oSle=document.getElementById(tl.idBase+i);
     oSle.length=0;
 
   var sTemp='';
      
   var sOpt=fGetOptStr(tl.item, tl.delimiter);
   var oRe=new RegExp(sOpt+'(.*?'+tl.delimiter+'.*?'
    +tl.delimiter+')(.*?'+tl.marker+')','gi');
    
   tl.source.replace(oRe, function($0, $1, $2){
   // /(.*?/#.*?/#)(.*?/@{3}<br//>)/gi
     sTemp+=$1;
     return $2;
   });

   sTemp=fStrClearRepeat(sTemp, tl.delimiter);
  
   var oRe=new RegExp('(.*?)'+tl.delimiter+'(.*?)'+tl.delimiter, 'gi');
  
   sTemp.replace(oRe,
    function($0, $1, $2){
     if(fGoSelect(tl.item, tl.defaultSelect, $1)){
      oSle.options[oSle.length]=new Option($2, $1, true, true);
     } else oSle.options[oSle.length]=new Option($2, $1);
   });

     oSle=null;
   } // end for 1
  } // end function fGoSelect
 
  function fCreateOption(sStr){
   if(tl.count>tl.item)return false;
  
   var oSle=document.getElementById(tl.idBase+tl.count);
    oSle.οnchange=function(){
     tl.onchange(this);
    }
   var sText='';
   var sValue='';
   var sTemp='';
   if(tl.count==1){
    var oRe=new RegExp('(.*?'+tl.delimiter+'.*?'+tl.delimiter+')(.*?'+tl.marker+')','gi');
    sStr=sStr.replace(oRe, function($0, $1, $2){
    // /(.*?/#.*?/#)(.*?/@{3}<br//>)/gi
      sTemp+=$1;
      return $2;
    });
   } else {
    var sOpt=fGetOptStr(tl.count, tl.delimiter);
    var oRe=new RegExp(sOpt+'(.*?'+tl.delimiter+'.*?'
     +tl.delimiter+')(.*?'+tl.marker+')','gi');
     
    tl.source.replace(oRe, function($0, $1, $2){
    // /(.*?/#.*?/#)(.*?/@{3}<br//>)/gi
      sTemp+=$1;
      return $2;
    });
   } //end else 1
  
   //alert(sTemp)
   sTemp=fStrClearRepeat(sTemp, tl.delimiter);
  
   var oRe=new RegExp('(.*?)'+tl.delimiter+'(.*?)'+tl.delimiter, 'gi');
  
   sTemp.replace(oRe,
    function($0, $1, $2){
     if(fGoSelect(tl.count, tl.defaultSelect, $1)){
      oSle.options[oSle.length]=new Option($2, $1, true, true);
     } else oSle.options[oSle.length]=new Option($2, $1);
   });
  
    oSle=null;
  
   tl.count++;
   arguments.callee(sStr);
  } // end function fCreateOption(sStr);
 
  function fGoSelect(nPsti, sSle, sForCmp){
   if(sSle=='')return false;
   sSle=sSle.split(',');
   if(sSle[nPsti-1]==sForCmp) return true;
   return false;
  } // end function fGoSelect(nPsti, sSle, sForCmp)
 
  function fGetOptStr(nCount, sDelimiter){
   if(nCount<=1)return false;
   var sTemp='';
   for(var i=1; i<nCount; i++){
    var oSlePrnt=document.getElementById(tl.idBase+i);
     sTemp+=oSlePrnt.options[oSlePrnt.options.selectedIndex].value;
     sTemp+=sDelimiter;
     sTemp+=oSlePrnt.options[oSlePrnt.options.selectedIndex].innerHTML;
     sTemp+=sDelimiter;
     oSlePrnt=null;
   } // end for
   return sTemp;
  } // end function fGetOptStr(nCount, sDelimiter)
 
  function fCkLevel(sSrc, sDelimiter,sMarker){
   var num=0;
   var re=new RegExp('(.*?)'+sMarker);
   var re_=new RegExp(sDelimiter, 'g');
  
   sSrc.replace(re,function($0,$1){
    $1.replace(re_, function(m){
     num++;
    });
   });
   return num/2;
  } // end fCkLevel(sSrc, sDelimiter,sMarker);
 
  function fStrClearRepeat(sStr, sDelimiter){
   var iStr='';
   var re=new RegExp('.*?'+sDelimiter+'.*?'+sDelimiter, 'gi');
  
   sStr=sStr.replace(re,function(m){
    if(iStr.indexOf(m)==-1)
    iStr+=m;
    return '';
   });
   return iStr; // shawl.qiu code
  } // end function fStrClearRepeat(sStr, sDelimiter);
  //------------------------------------end private method
 } // shawl.qiu code
 //---------------------------------end class cFormSelect()---------------------------------//
//]]>
</script>
</head>
<body>
<select name='super' id='level1'>

</select>
<select name='sub' id='level2'>

</select>
<br/><a href="?">back</a><br/>
<a href="?id=4&idsub=26">4&26</a><br/>
<a href="?id=23&idsub=159">23&159</a><br/>
<a href="?id=50&idsub=127">50&127</a><br/>
<a href="?id=51&idsub=66">51&55</a><br/>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值