CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
(图)邪恶的韩国UMPC 使用 Java 编写数据库应用新规范
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

如何实现这样的效果----动态生成表格(键盘弹起来触发事件)???

楼主syd41()2005-07-22 07:55:14 在 Web 开发 / ASP 提问

比如有一个表格:  
  开始时是“1行5列”,当输入到最后一格时自动生成第二行,依次类推!  
   
  效果如http://lucky.diy.myrice.com/javascriptexam/addelement.htm那样,查看其源文件,我看不懂那些事件函数,麻烦大家能否给出示范代码,谢谢! 问题点数:50、回复次数:12Top

1 楼白夜花寒(远藤花已谢,白夜花未寒)回复于 2005-07-22 08:07:12 得分 0

function   addNewChild(obj)  
  {  
  var   isblank   =   "false";  
  var   objName   =   obj.name;  
  var   last2Char   =   objName.substring(objName.length   -   2);  
  if(   last2Char.substring(0,   1)   >   '9'   ||   last2Char.substring(0,   1)   <   '0'   )  
  {  
  last2Char   =   last2Char.substring(1,   2);  
  }  
   
  for(var   i=0;   i   <   document.form1.elements[objName].length;   i++)  
  {  
  if(document.form1.elements[objName].item(i).value   ==   "")  
  isblank   =   "yes"  
  }  
   
  if(   isblank   !=   "yes"   )  
  {  
  var   objItem   =   '<div   id="__idQueOption'   +   last2Char   +   '"><b>问题选项:</b>';  
        objItem   +=   '     <input   onpropertychange="addNewChild(this)"   size="60"   name="'   +   objName   +   '"   class="tableborder"   />';  
        objItem   +=   '</div>';  
   
  objName   =   "__idQueOption"   +   last2Char;  
  var   varQueOption   =   document.all[objName];  
  if(   varQueOption.length   !=   null   )  
      varQueOption   =   varQueOption.item(varQueOption.length-1);  
   
  varQueOption.insertAdjacentHTML("afterEnd",objItem);  
  }  
  }  
   
  这个函数都如此精简了,你还有哪看不懂的???Top

2 楼iexapl(飞龙侠客)回复于 2005-07-22 08:14:00 得分 0

uPTop

3 楼hanghwp(游陆)回复于 2005-07-22 08:43:23 得分 0

会用就行/不一定都要懂呀Top

4 楼chjpeng(鹏(招聘.net web开发程序员))回复于 2005-07-22 09:08:04 得分 0

通过onpropertychange执行addNewChild函数添加子项  
   
  function   addNewChild(obj)  
  {  
  var   isblank   =   "false";  
  var   objName   =   obj.name;  
  var   last2Char   =   objName.substring(objName.length   -   2);  
  if(   last2Char.substring(0,   1)   >   '9'   ||   last2Char.substring(0,   1)   <   '0'   )  
  {  
  last2Char   =   last2Char.substring(1,   2);  
  }  
   
  for(var   i=0;   i   <   document.form1.elements[objName].length;   i++)  
  {  
  if(document.form1.elements[objName].item(i).value   ==   "")  
  isblank   =   "yes"             //如果对象所包含元素中全部值为空,就不进行添加操作  
  }  
   
  if(   isblank   !=   "yes"   )                 //触发的对象有一个元素值不为空时,添加一个新的对象  
  {  
  var   objItem   =   '<div   id="__idQueOption'   +   last2Char   +   '"><b>问题选项:</b>';  
        objItem   +=   '     <input   onpropertychange="addNewChild(this)"   size="60"   name="'   +   objName   +   '"   class="tableborder"   />';  
        objItem   +=   '</div>';  
   
  objName   =   "__idQueOption"   +   last2Char;  
  var   varQueOption   =   document.all[objName];  
  if(   varQueOption.length   !=   null   )  
      varQueOption   =   varQueOption.item(varQueOption.length-1);  
   
  varQueOption.insertAdjacentHTML("afterEnd",objItem);  
  }  
  }Top

5 楼syd41()回复于 2005-07-22 11:19:16 得分 0

问题就在我不会用,刚接触ASP不久,所以对ASP里面的一些事件和属性都不知道  
   
  麻烦就在这边,别人能用的,你拿过来改动一下就不能用了,那就说明自己还没有真正理解别人写代码的意思,所以想请大家帮帮忙,最好有个注释什么的,有现成的例子更好!Top

6 楼白夜花寒(远藤花已谢,白夜花未寒)回复于 2005-07-22 11:30:31 得分 0

哥哥,他的代码已经这么容易了.....我写的代码比这个都要复杂很多,不过你也可以等的,只不定有谁想写个更简单的,呵呵......  
   
  你把那个函数好好看看哪不懂的,再问了Top

7 楼syd41()回复于 2005-07-22 14:54:37 得分 0

呵呵……  
  行,我听你的,静下心来好好看看,不要只想人家帮你做,自己想出来的才是最重要的!  
  谢谢大家的提示!Top

8 楼syd41()回复于 2005-07-23 16:02:31 得分 0

还有哪位大哥能帮帮我的,我真的是做不了!  
  尤其是命名那一块,我的情况跟例子不太一样  
   
  我的是:<tr>  
                              <td></td>  
                              <td></td>  
                              <td></td>  
                              <td>通过这个单元格触发下一行</td>  
                  </tr>  
   
  有谁还能现成的例子吗?Top

9 楼jackycxg(黑白灰)回复于 2005-07-23 16:46:55 得分 0

ou   bu     dong    
  Top

10 楼emhuangzi(小皇----加油 加油!)回复于 2005-07-23 17:03:38 得分 0

就是一个键盘触发的事件撒,  
    chjpeng(鹏&NULL)   的代码很简单了!  
  你直接加进去嘛  
  或者你逐句的慢慢翻译!Top

11 楼chjpeng(鹏(招聘.net web开发程序员))回复于 2005-07-23 17:04:32 得分 50

QQ里溜得倒快,发这里吧  
  1.  
  <tr   bgcolor="#FFFFFF">  
  <td   width="238"   align="center"><input   type="text"   name="DandP"   size="24"   class="smallinput"   maxlength="50"   onpropertychange="javascript:addNewData(this);"></td>  
  <td   width="209"   align="center"><input   type="text"   name="DandP"   size="25"   class="smallinput"   maxlength="50"></td>  
  <td   width="67"   align="center"><input   type="text"   name="DandP"   size="5"   class="smallinput"   maxlength="50"></td>  
  <td   width="48"   align="center"><input   type="text"   name="DandP"   size="5"   class="smallinput"   maxlength="50"></td>  
  <td   width="49"   align="center"><input   type="text"   name="DandP"   size="5"   class="smallinput"   maxlength="50"></td>  
  <td   width="100"   align="center"><input   type="text"   name="DandP"   size="5"   class="smallinput"   maxlength="50"></td>  
  </tr>  
  <tr   bgcolor="#ffffff">  
  <td   colspan="6">  
  <!--insert   here-->  
  <DIV   id=__idInsertBefore></DIV><INPUT   type=hidden   value=1   name=newTable>  
  </td>  
  </tr>  
   
  2.  
  <SCRIPT   language="javascript">  
  function   addNewData(obj)  
  {  
  if(obj.value.length>1)  
  {return   true;}  
  document.form1.newTable.value   =     parseInt(document.form1.newTable.value)   +   1;  
  var   newItemId;  
  if(   (document.form1.newTable.value).length   >   2   )  
  {  
  alert("您的调查问题总数不能超过   99   个。")  
  window.location.reload();  
  }  
   
  newItemId   =   document.form1.newTable.value;  
  var   objItem   =   '<table   border=0   cellspacing=0   cellpadding=0><tr   bgcolor="#FFFFFF">';  
    objItem   +=   '     <td   width="238"   align="center">';  
    objItem   +=   ' <input   type="text"   name="DandP'   +   newItemId   +   '"   size="24"   class="smallinput"   maxlength="50"   onpropertychange="javascript:addNewData(this);"></td>';  
    objItem   +=   '     <td   width="209"   align="center"><input   type="text"   name="DandP'   +   newItemId   +   '"   size="25"   class="smallinput"   maxlength="50"   ></td>';  
    objItem   +=   '     <td   width="67"   align="center"><input   type="text"   name="DandP'   +   newItemId   +   '"   size="5"   class="smallinput"   maxlength="50"   ></td>';  
    objItem   +=   '     <td   width="48"   align="center"><input   type="text"   name="DandP'   +   newItemId   +   '"   size="5"   class="smallinput"   maxlength="50"   ></td>';  
    objItem   +=   '     <td   width="49"   align="center"><input   type="text"   name="DandP'   +   newItemId   +   '"   size="5"   class="smallinput"   maxlength="50"   ></td>';  
    objItem   +=   '     <td   width="100"   align="center"><input   type="text"   name="DandP'   +   newItemId   +   '"   size="5"   class="smallinput"   maxlength="50"   ></td>';  
    objItem   +=   '     </tr></table>';  
    document.all.__idInsertBefore.insertAdjacentHTML("beforeBegin",   objItem);  
  }  
  </script>Top

12 楼satans18((何畏)(只要你过得比我好))回复于 2005-07-23 17:10:25 得分 0

那就是最好的列子了,你去看下JS关于节点操作方面的资料Top

相关问题

  • 触发器生成!
  • 100求 怎么才能点击动态生成的表格里的单元格,触发一个C#函数
  • 触发器生成新表的问题
  • 如何触发动态生成的控件的触发事件?
  • 关于表格报表的生成!
  • VB生成Excel表格的问题
  • 请教如何生成动态表格??
  • 请教:动态表格的生成
  • 动态生成表格,详请见内!
  • javascript 生成表格的问题

关键词

  • 函数
  • 代码
  • null
  • varqueoption
  • objname
  • 触发
  • objitem
  • addnewchild
  • 事件
  • last2char

得分解答快速导航

  • 帖主:syd41
  • chjpeng

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
惹火投票。。火热进行中...

社区焦点:

教你怎样用C#搞笑整人
最懒惰的程序员写的Cache
程序员如何掌握专业英语
Java栈与堆
分享:让人懊恼的面试
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo