|          
这是一个动态增加\删除物件如(Text,Table)的例子,它的特点是可以不提交到后台,
 直接在前台物件中保存数据.需要时,一起提交.
 在ASP中这样可以省去很多没有必要的送到后台处理.
 很有用.我想了一天才出来.
 这里用到了一个链表的概念,就是TableA+DivA
 DivA--->存放TableB+DivB
 DivB--->存放TableC+DivC
 .......
 
 源码如下:
 
 <html>
 <head>
 <meta http-equiv="content-Type" content="text/html">
 <title>Dhtml test</title>
 
 <style type="text/css">
 A
 {
 COLOR: royalblue;
 FONT-SIZE:9PT;
 TEXT-DECORATION: none
 }
 A:hover
 {
 COLOR:indigo;
 FONT-SIZE:9PT;
 TEXT-DECORATION: none
 }
 TD
 {
 COLOR: black;
 FONT-FAMILY: 穝灿砰;
 FONT-SIZE: 9pt;
 FONT-WEIGHT: 400
 }
 </style>
 </head>
 
 <BODY >
 
 
 
 <center><b>动态增加\删除物件</b></center>
 
 
 <DIV id="mybag0" ALIGN="CENTER">
 <!--在这里是开始加入第一个-->
 </DIV>
 
 
 
 <DIV ALIGN="CENTER">
 
 <TABLE WIDTH="100%" BORDER="1" CELLSPACING="1" CELLPADDING="1" BORDERCOLOR="tomato">
 
 <tr>
 <td colspan="16" align="center">
 <input type="button" name="cmdAddItm" value="add" onclick="AddItm();">
 <input type="button" name="cmdDelItm" value="Del" onclick="DelItm();">
 </td>
 </tr>
 </TABLE>
 </DIV>
 
 </BODY>
 
 
 <script language="JavaScript" src="function/function.js">
 </script>
 <script language= "javascript">
 
 
 //'*********************************************************
 // ' Purpose: Table TblItm1,TblItm2,TblItm3.......
 // ' Inputs:
 //' Returns: True,False
 //'*********************************************************
 
 var StraddItem="";
 var ItemNo=1; //,1,2,3,4......
 
 function AddItm()
 {
 
 var mybag="Mybag"+(ItemNo-1); //look for last Bag
 //StraddItem=Table+define new Bag
 StraddItem="<table id=TblItm"+ItemNo+" WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=1
 BORDERCOLOR=red><TR><TD COLSPAN=6 > </TD></TR><tr colspan=6 height=1align=center> <td align=center
 colspan=13 width=100% bgcolor=mistyrose> <INPUT TYPE=CHECKBOX name=chkAppIt"+ ItemNo +" value=Y>"+
 ItemNo +".Table <input type=text name=txtAppit"+ ItemNo + " size=35> </td> </tr> <TR><TD
 COLSPAN=6 > </TD></TR><div id=mybag"+ItemNo+" > </div>";
 //将(Table+define new Bag)放入上一个袋囊,形成链表
 document.all(mybag).innerHTML=StraddItem;
 ItemNo++;
 }
 //************************* ***********************************
 
 
 //'*********************************************************
 // ' Purpose: Del()Table TblItm1,TblItm2,TblItm3.......
 // ' Inputs:
 //' Returns: True,False
 //'*********************************************************
 function DelItm()
 {
 var i;
 var bSel;
 var strURL;
 
 for(i=1;i<ItemNo;i++) //chkAppitx, forbidden Show TblItmx
 {
 chkAppItx="chkAppIt"+i;
 TblItmx="TblItm"+i;
 if (document.all(chkAppItx).checked==true)
 {document.all(TblItmx).style.display="none"
 bSel=true;
 }
 }
 
 if (bSel != true) {alert("must choose Del items") ; return false; }
 else return true;
 }
 
 //'*********************************************************
 
 
 </script>
 </html>
 
 
 |