动态处理html表格

应用场景:
很多时候,在页面填写表格是,想一行一行的填写,但是事先是不知道会有多少行的,有几种可用的方法
1、需要填写一行时,弹出新的页面,填写一行数据完毕,保存后,然后才能继续填写下一行。
   缺点:每填写一行,就需要保存一次数据,增加交互。
2、在同一个页面显示可能填写数据行数的最大行数,能填写多少行就填写多少行,直到填写满位置。所有数据填写完毕,保存数据即可。
   缺点:数据结构会有冗余,属于比较蹩脚的设计。
3、在页面上,当需要填写一行数据时,在页面显示一行数据录入区域。随着需要而增加。所有数据填写完毕,保存数据即可。
    这正式本次要进行描述的实现方式。
这个演示例子很简单,只需要创建一个html文件即可。其功能是在页面上动态显示文件浏览框。

以下是文件内容:

<!--
date:2005-11-25
author:sparklet-sun
function:dynamic table usage
-->
<html>
<head>
    <title>动态行测试</title>
<script language="JavaScript" type="text/JavaScript">

var rowcounter = 0;

var tbl;
function insert(){
    tbl=document.getElementById('dynamic_result');
 var row = tbl.insertRow();

 row.id=rowcounter;
 //row.className=linestyle;

 cell = row.insertCell();
 cell.align = 'center';

 //cell.className=linestyle;
    cell.innerHTML="<input type=text size=30 name=file"+rowcounter+"> <input type=button name=bdelAtt value=删除 οnclick=delAtt('"+rowcounter+"')>";

 rowcounter++;

}

function delRow(rowid){

    var count = tbl.rows.length;
 for (i = 0; i < count; i++) {
  if (rowid == tbl.rows(i).id){
   tbl.deleteRow(i);
            rowcounter--;
            return;
  }
 }
}


function delAll(){
 var count = tbl.rows.length;
 for (i=0;i<count;i++){
  tbl.deleteRow(i);
 }
}

function insertData(){
    insert();
}

function  addAtt(){
    insertData();
    document.forms[0].kc.value=rowcounter;
}

function delAtt(rowid){
    delRow(rowid);
    document.forms[0].kc.value=rowcounter;
}
</script>

</head>
<body>
<form action="dytest.jsp">
    <!-- counter -->
 <input type="hidden" name="kc">

 <!--dynamic table area ..-->
 <table border="1" id="dynamic_result">
    <!-- dynamic data will be inserted here-->
 </table>
</form>

<input type="button" name="badd" value="添加附件" οnclick="addAtt()">
</body>
</html>

不难看出,其原理就是利用dhtml语言,动态拼写table的内容区域。

由此原理,我们自然也可以动态拼装其他的有些页面元素。     

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值