CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  JavaScript

暴难问题啊,救命啊,表的一对多关系,如何取得动态加入的文本框的值!!!!!!!!!!!!!!!!

楼主gxkgxkgxk(gxk)2005-08-03 18:29:59 在 Web 开发 / JavaScript 提问

。。。。。  
  var   cell   =   row.insertCell();  
  cell.innerHTML   =   "<input   type='text'   name='adfd1'   size='15'   onclick='setRowBg(this.parentElement)'   onblur='setRowblurBg(this.parentElement);this.style.backgroundColor=\"#f7f7f7\";'   onfocus='this.style.backgroundColor=\"#53A9FF\";'>";  
   
  首先我动态加了一个大表格,表格有隐藏的行,以上为部分代码  
   
  cell.innerHTML   =   "<table><tr<td><input   type='text'   name='countchild'   size='15'   style='background-color:#4AC5FF'     style='color:#ffffff;'></td>table>";  
   
  然后我用动态的添加了一个表格,这个表格放到第一层表格的隐藏的行中,这个表格有一行,即合计行  
  以上为部分代码  
   
  var   cell   =   newrow.insertCell();  
  cell.innerHTML   =   "<input   type='text'   name='childadfd'     size='15'>";  
  然后我又向这个表格里动态的添加行,合计行会向下移动,保持在最下面   以上为部分代码  
   
   
  我动态添加这些东西的时候,都没有添加它们的ID  
  现在我想求第二层表格的文本字段countchild的合计值怎么求。  
   
  注,第二层有N个表格,N不确定,谢谢了,救命了  
  问题点数:50、回复次数:9Top

1 楼gxkgxkgxk(gxk)回复于 2005-08-03 20:57:01 得分 0

各位高人快来啊  
  给个思路或关键代码也行啊Top

2 楼harryCom()回复于 2005-08-04 00:07:44 得分 5

求countchild的合计值?是所有countchild的值的总和吗?  
  var   countchildList   =   document.getElementsByName("countchild");  
  var   total   =   0;  
  for(var   i;i<countchildList.length;i++){  
      total   +=   parseInt(countchildList[i].value);  
  }Top

3 楼gxkgxkgxk(gxk)回复于 2005-08-04 00:12:02 得分 0

不是的,是对每个从表格中的统计,并且每个从表格中的行也就是文本框的个数是不确定的,有可能第一个从表格中的最后一行是新增加的。Top

4 楼holyfeather(文一(www.xznmx.com))回复于 2005-08-04 09:55:22 得分 5

既然如此暴难,帮你顶一下喽。Top

5 楼JK_10000(JK)回复于 2005-08-04 10:09:31 得分 20

<html>  
   
  <head>  
  <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">  
  <title>JK:支持民族工业,尽量少买X货</title>  
   
  <style>  
  TD,INPUT{ font-size:12; }  
  </style>  
  </head>  
   
  <body   bgcolor=EEEEEE>  
  <form   name="frm"   action="about:结果页面"   method=post   >  
  <h4   align=center>JK的动态明细示例</h4>  
   
  <table   align="center"   bordercolor=cccccc   border=1     width=100%   >  
  <tr>  
  <td   width=500>  
  </td>  
  <td   align=right>  
              <input   type="button"     value="增加"   class="bottom"   onclick="addDetailProcess();">&nbsp;            
              <input   type="button"     value="删除"   class="bottom"   onclick="delDetailProcess();">&nbsp;            
              <input   type="button"     value="完成"   class="bottom"   onclick="submitProcess();">  
               
  </td>  
  </tr>  
  </table>  
  <div   width=100%   id=thedetailtableDIV>  
  <table   align="center"   bordercolor=cccccc   border=1   width=100%   >  
      <tr   bgcolor=eeeeee   id="trDetailTitles">    
          <td   ><input   type=checkbox   onclick="selectallcheckbox(this)"></td>  
          <td   >明细ID*</td>  
          <td   >明细NAME</td>  
          <td   >明细Quantity</td>  
      </tr>  
      <tbody   id="tbDetailUsed"   >  
  <tr>  
  <td   ><input   type="checkbox"   name="record_select"   ></td>  
  <td   ><input   type="text"   name="detail_id"   value=''   ></td>  
  <td   ><input   type="text"   name="detail_name"   value=''   ></td>  
  <td   ><input   type="text"   name="detail_quantity"   value=''   onblur="resetTotalTdFun();"></td>  
  </tr>  
   
  <tr   height=0   ><td   colspan=3   height=0   align=right   >   合计</td><td   id=totalTd>0</td></tr>  
      </tbody>    
   
  </table>  
  </div>  
  </form>  
   
  <!--复制的内容-->  
  <table   id="tbDetailPrepare"   style="display:none">  
  <tr>  
  <td   ><input   type="checkbox"   name="record_select"   ></td>  
  <td   ><input   type="text"   name="detail_id"   value=''   ></td>  
  <td   ><input   type="text"   name="detail_name"   value=''   ></td>  
  <td   ><input   type="text"   name="detail_quantity"   value=''   onblur="resetTotalTdFun();"></td>  
  </tr>  
  </table>  
   
   
  <input   name="theHistoryRecord"   type=hidden   value="">  
  </body>  
   
  </html>  
   
  <script   language=javascript>  
   
  window.onload   =   historyOncemore;  
  window.onbeforeunload   =   fixHistory;  
   
  function   fixHistory() //记住历史  
  {  
  document.all("theHistoryRecord").value=document.all("thedetailtableDIV").innerHTML.replace(/\n/g,"");  
  }  
   
  function   historyOncemore() //恢复历史  
  {  
  if   (document.all("theHistoryRecord").value!="")  
  {document.all("thedetailtableDIV").innerHTML=document.all("theHistoryRecord").value;  
  }  
  }  
   
  function   selectallcheckbox(obj) //全选或全不选  
  {  
  var   tureorfalse=obj.checked;  
  var   theDetail=tbDetailUsed.rows;  
  for(var   i=0;i<theDetail.length-1;i++)  
  {  
  theDetail[i].all("record_select").checked=tureorfalse;  
  }  
  }  
   
   
  function   addDetailProcess(afterRowIndex) //增加明细  
  {  
  var   alltbDetailUsed=   document.all("tbDetailUsed").rows;  
  var   theFirstSelectedDetail;  
  if   (afterRowIndex==null)  
  {  
      theFirstSelectedDetail=alltbDetailUsed.length-2;  
  }  
  else   theFirstSelectedDetail=afterRowIndex;  
  var   newRow   =   document.all("tbDetailPrepare").rows[0].cloneNode(true);  
  var   desRow   =   alltbDetailUsed[theFirstSelectedDetail+1];  
  desRow.parentElement.insertBefore(newRow,desRow   );  
   
  }  
   
  function   delDetailProcess() //删除明细  
  {  
  var   alltbDetailUsed=   document.all("tbDetailUsed").rows;  
  if   (confirm("确定选择正确并且要将这些明细删除")==false)   return   false;  
  for(var   i=0;i<alltbDetailUsed.length-1;i++)  
  {  
  if   (alltbDetailUsed[i].all("record_select").checked==true)  
  {  
  document.all("tbDetailUsed").deleteRow(i);  
  i=i-1;  
  }  
  }  
  resetTotalTdFun();  
  }  
   
  function   submitProcess()  
  {  
  document.frm.submit();  
  }  
   
  function   resetTotalTdFun()  
  {  
   
  var   quantityObjs=document.getElementsByName("detail_quantity");  
  var   tempTotal=0;  
  for(var   i=0;i<quantityObjs.length-1;i++)  
  tempTotal+=quantityObjs[i].value*1;  
  totalTd.innerText=tempTotal;  
  }  
   
  </script>Top

6 楼gxkgxkgxk(gxk)回复于 2005-08-04 12:00:46 得分 0

谢谢JK高人了  
   
  呵呵,不过你这个是一层的关系,每条记录下面还能增加从表格吗  
  一层关系的合计我实现了  
  二层表格的动态增加也实现了,就是没办法得到二层表格里动态增加的记录的合计Top

7 楼gxkgxkgxk(gxk)回复于 2005-08-04 21:23:24 得分 0

再UP一下Top

8 楼qidizi(qidizi)回复于 2005-08-05 01:50:08 得分 20

我不大明白你的意思,  
  我说下我的理解:  
   
  1你新建了一个table1  
  2然后你在table1的某个TR1_X后插入一个新的同级TR1_X+1  
  3你接着向这个TR1_X+1加入被包含的TD,并设这个TD的内容是一个table1_1,table1_1只有一个TD,包含维一的INPUT1_1_1;  
   
  4重复2,3步骤X次  
  5要取得所有的INPUT1_1_1;  
   
  要是这样的话,你可以这样:  
   
  var   object  
  for(var   i0;i0   <   table1.rows.length;i0++){//所有的第一层表格的TR  
                  for(var   i1;i1   <   table1.rows[i0].cells.length;i1++){//所有的第一层表格的TR的所有TD  
                          if(     (object=table1.rows[i0].cells[i1].children[0]).tagName   ==   "TABLE"){//检查此TD中是不是一个表格,前提只有用于你上面的那个TD才插入表格;  
                                    alert(object.innerText   +   "\t"   +   object.rows[0].cells[0].children[0].value);  
                          }  
                  }  
  }  
   
  如果你是新table0  
  1然后在table0的第X个TR的第Y个TD加入table1,  
  2再在table1第X个TR的第Y个TD加入table1  
                      .  
                      .  
                      .  
  最后在tableN第X个TR的第Y个TD加入tableN+1,并在tableN+1的第1个TR加入TD,在此TD中加入INPUT  
  更有可能在TABLEZ的第Z个TD又分出一支的话,这你只能像在C盘下找到所有的TXT文件一件了,  
  我不知杀毒的如何操作,我的想法是,有一个数组,用于记录未完成的文件夹,当打开某个文件夹时,就先检测此文件夹下的文件合不合,在此文件夹下找到文件夹就加入文件夹数组,然后选择数组中的一个下标再如此检查,并删除此下标,再找到文件夹又加入,直到数组为0;  
   
  3Top

9 楼gxkgxkgxk(gxk)回复于 2005-08-08 10:27:22 得分 0

谢谢qidiziTop

相关问题

  • 动态的文本框取值
  • 如何根据数据库中的表 动态添加文本框并获得 输入值?
  • 高分请,高手来看,如何获得动态表格中的文本框的值
  • 文本框复值
  • 高手救命!!js动态插入文本框,请问怎样在.cs中取到文本框的值?
  • 如何取得页面中动态生成文本框的值???
  • 在javascript中如何动态的使用文本框的值
  • 动态生成文本框--取值问题
  • javascript 获取动态文本框的值的问题?
  • javascript动态添加文本框、赋值和查询的问题???

关键词

  • 明细
  • 动态

得分解答快速导航

  • 帖主:gxkgxkgxk
  • harryCom
  • holyfeather
  • JK_10000
  • qidizi

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo