这是一个动态增加\删除物件如(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>
……