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

高分求教如何象163邮件上那样添加附件那样

楼主asdex1999()2006-10-09 09:49:42 在 Java / Web 开发 提问

我想做成一个象163邮件 上添加附件那样, 添加一个附件以后,然后再点击新增附件就出另外一个文本框来添加附件.  
  而且如何来获得文本框的值呢,请各位高手指点一下  
  我的文本框已经做好,就是不知道怎么去获得新增文本框的值  
  <table   id="t1"   border="1">  
  </table>  
  <script   language="JavaScript">  
  function   add(){  
  t1.insertRow().insertCell().innerHTML   =   '<input   type="radio"   name="tt"><input><input   type="text"    
   
  name="tt1"></input>';  
  }  
  function   del(){  
  var   c   =   document.getElementsByName('tt');  
   
  for(var   i=0;   i<c.length;   i++)  
  if(c[i].checked)  
  t1.deleteRow(i);  
  }  
  </SCRIPT>  
  <button   onClick="add()">add</button>  
  <button   onClick="del()">del</button> 问题点数:100、回复次数:21Top

1 楼tonyzhangcn(东尼)回复于 2006-10-09 10:19:43 得分 20

新增文本框的值是空的呀。我把你的代码改成下面的代码了,你看看是不是你要的东东  
  (存成一个.htm文件打开就可以看到效果了。)  
  <HTML>  
  <head>  
  <script   language="JavaScript">  
  function   add()  
  {  
  var   t1   =   document.getElementById("t1");  
  t1.insertRow().insertCell().innerHTML   =   "<input   type=\"radio\"   name=\"tt\"><input   type=\"text\"      
   
  name=\"tt1\"></input>";  
   
  }  
  function   del(){  
  var   c   =   document.getElementsByName('tt');  
   
  for(var   i=0;   i<c.length;   i++)  
  if(c[i].checked)  
  t1.deleteRow(i);  
  }  
   
  function   telllast()  
  {  
  var   allt11=   document.getElementsByName("tt1");  
  alert(allt11[allt11.length-1].value);  
  }  
  </SCRIPT>  
  </head>  
  <body>  
   
   
  <table   id="t1"   border="1">  
  <tr>  
  <td>  
  <input   type="radio"   name="tt">  
  <input   type="text"   name="tt1">  
  </td>  
  </tr>  
  </table>  
  <button   onClick="add();">add</button>  
  <button   onClick="del();">del</button>  
  <button   onClick="telllast();">tell   me   last   row   value</button>  
  </body>  
  </HTML>Top

2 楼asdex1999()回复于 2006-10-09 10:21:23 得分 0

我的文本框是可以输入东西的  
  Top

3 楼asdex1999()回复于 2006-10-09 10:31:51 得分 0

tonyzhangcn(东尼)  
  我去试下你的啊,多谢了Top

4 楼eagleking012((菜鸟也疯狂))回复于 2006-10-09 10:31:58 得分 20

<script   language="javascript"   type="text/javascript"><!--  
  function   checkForm(form)   {  
          var   action;  
          if   (form.fromFile.checked)   {  
                  if   (isAllFileEmpty(form))   {  
                          alert(RES_ALERT_NO_UPLOAD_FILE);  
                          form.file.focus();  
                          return   false;  
                  }  
                  if   (!form.unzip.disabled   &&   form.unzip.checked)   {  
                          action   =   "PostUnzip"  
                  }   else   {  
                          action   =   "PostFile"  
                  }  
                  form.encoding   =   "multipart/form-data";  
          }   else   if   (form.fromURL.checked)   {  
                  if   (form.url.value   ==   ""   ||   form.url.value   ==   "http://")   {  
                          alert(RES_ALERT_NO_UPLOAD_URL);  
                          form.url.focus();  
                          return   false;  
                  }  
                  var   ln   =   form.url.value.toLowerCase();  
                  if   (!startsWith(ln,   "http://")   &&   !startsWith(ln,   "ftp://")   )   {  
                          alert(RES_ALERT_INVALID_URL);  
                          form.url.focus();  
                          return   false;  
                  }  
                  action   =   "PostUrl";  
                  form.encoding   =   "application/x-www-form-urlencoded";  
          }  
          form.action   =   action   +   "";  
  document.getElementById("btnAdd").disabled   =   true;  
  document.getElementById("btnUpload").disabled   =   true;  
  if(document.all){  
  document.getElementById("trLoad").style.display   =   '';  
  }  
          return   true;  
  }  
   
  function   checkFromFile(form)   {  
          form.fromFile.checked   =   true;  
          form.fromURL.checked     =   false;  
          changeFromXXX(form);  
  }  
   
  function   checkFromURL(form)   {  
          form.fromFile.checked     =   false;  
          form.fromURL.checked       =   true;  
          changeFromXXX(form);  
  }  
   
  function   changeFromXXX(form)   {  
          if   (isChecked(form.fromFile))   {  
                  for   (var   i   =   0;   i   <   form.elements.length;   i++)   {  
                          var   e   =   form.elements[i];  
                          if   (e.type   ==   "file")   {  
                                  e.disabled         =   false;  
                          }  
                  }  
                  form.url.disabled           =   true;  
                  changeFile(form);  
          }   else   if   (isChecked(form.fromURL))   {  
                  for   (var   i   =   0;   i   <   form.elements.length;   i++)   {  
                          var   e   =   form.elements[i];  
                          if   (e.type   ==   "file")   {  
                                  e.disabled           =   true;  
                          }  
                  }  
                  form.url.disabled             =   false;  
                  form.unzip.disabled         =   true;  
                  form.name.disabled   =   false;  
          }  
  }  
   
  function   changeFile(form)   {  
          var   fn   =   form.file.value.toLowerCase();  
          if   (isMultiFile(form))   {  
                  form.unzip.disabled   =   true;  
          }   else   if   (endsWith(fn,   ".zip")  
                          ||   endsWith(fn,   ".jar")   ||   endsWith(fn,   ".war"))   {  
                  form.unzip.disabled   =   false;  
          }   else   {  
                  form.unzip.disabled   =   true;  
          }  
          changeUnzip(form);  
  }  
   
  function   isMultiFile(form)   {  
          var   found   =   false;  
          for   (var   i   =   0;   i   <   form.elements.length;   i++)   {  
                  var   e   =   form.elements[i];  
                  if   (e.type   ==   "file")   {  
                          if   (found)   return   true;   else   found   =   true;  
                  }  
          }  
  }  
   
  function   isAllFileEmpty(form)   {  
          for   (var   i   =   0;   i   <   form.elements.length;   i++)   {  
                  var   e   =   form.elements[i];  
                  if   (e.type   ==   "file"   &&   e.value   >   "")   {  
                          return   false;  
                  }  
          }  
          return   true;  
  }  
   
  function   changeUnzip(form)   {  
          form.name.disabled   =   isChecked(form.unzip);  
  }  
   
  function   isChecked(element)   {  
          return   !element.disabled   &&   element.checked;  
  }  
   
  function   init()   {  
          changeFromXXX(form);  
  }  
   
  //-----   Multi   Upload   Functions   -------------------------------------------------  
  var   isIE   =   (navigator.userAgent.indexOf("MSIE")   !=   -1);  
  var   fileIndex   =   0;  
   
  function   addFile()   {  
          var   spanId   =   "filespan";  
          var   fileId   =   "uploadfile"   +   (fileIndex++);  
          addInputFile(spanId,   fileId);  
  }  
   
  function   addInputFile(spanId,   fileId)   {  
          var   span   =   document.getElementById(spanId);  
          if   (span   !=   null)   {  
                  var   divObj   =   document.createElement("div"),   fileObj,   delObj;  
                  divObj.id   =   fileId;  
                  if   (isIE)   {  
                          fileObj   =   document.createElement("<input   type=file   onchange=changeFile(form)>");  
                          delObj   =   document.createElement("<input   type=button   onclick=delInputFile('"   +   spanId   +   "','"   +   fileId   +   "')>");  
                  }   else   {  
                          fileObj   =   document.createElement("input");  
                          fileObj.type   =   "file";  
                          fileObj.setAttribute("onchange",   "changeFile(form)",   0);  
                          delObj   =   document.createElement("input");  
                          delObj.type   =   "button";  
                          delObj.setAttribute("onclick",   "delInputFile('"   +   spanId   +   "','"   +   fileId   +   "')",   0);  
                  }  
                  fileObj.name   =   fileId;  
                  fileObj.size   =   "40";  
                  fileObj.className   =   "input";  
                  delObj.value   =   RES_BT_DELETE;  
                  divObj.appendChild(fileObj);  
                  divObj.appendChild(document.createTextNode("   "));  
                  divObj.appendChild(delObj);  
                  span.appendChild(divObj);  
          }  
  }  
   
  function   delInputFile(spanId,   fileId)   {  
          var   span   =   document.getElementById(spanId);  
          var   divObj   =   document.getElementById(fileId);  
          if   (span   !=   null   &&   divObj   !=   null)   {  
                  span.removeChild(divObj);  
          }  
  }  
  //--></script>  
  <form   method="post"   action="addTxt.jsp"   id="form"   >  
  <table>  
      <tr>  
          <td   nowrap   id="filespan">  
              <input   name="file"   type="text"   class="input"   size="40"   onchange="changeFile(form)">  
              <input   type="button"   onclick="addFile()"   value="添加"   id="btnAdd"   />  
          </td>  
      </tr>  
  </table>  
   
  </form>  
  第二页取file的值Top

5 楼kkgogo(kkgogo)回复于 2006-10-09 10:34:37 得分 20

思路变一点点,  
  form中:input的name设为tt1、tt2等等,再把总数记录并传递,  
  在你接收表单的Servlet或jsp中:  
  一个for循环  
  request.getParameter(tt1之类);  
  Top

6 楼asdex1999()回复于 2006-10-09 10:38:52 得分 0

我想用数组去传值,然后接收也是用数组,怎么样Top

7 楼kkgogo(kkgogo)回复于 2006-10-09 10:48:09 得分 0

用不着,innerHTML的时候就把tt1、tt2写死不就完了。Top

8 楼asdex1999()回复于 2006-10-09 10:50:04 得分 0

kkgogo(kkgogo) 有没好的方法呢,Top

9 楼yougucao379548695(郑州-小刘)回复于 2006-10-09 13:07:23 得分 0

关注,学习!Top

10 楼kkgogo(kkgogo)回复于 2006-10-09 13:22:38 得分 0

都是动态的生成的,还不是好办法?不容易实现的地方只是在dom和html标签的控制上。Top

11 楼starsoulxp(星魂)回复于 2006-10-09 13:59:14 得分 0

可以考虑用层来控制Top

12 楼asdex1999()回复于 2006-10-09 16:41:42 得分 0

<!--   saved   from   url=(0022)http://internet.e-mail   -->  
   
   
  <form   name="Test"   action="11.jsp">  
  <table   id="t1"   border="1"></table>  
   
  <button   onClick="add()">add</button>  
  <button   onClick="del()">del</button>  
  </form>  
  <script   language="JavaScript">  
  var   j=1;  
  var   Temp="1111";  
  function   add()  
  {  
  //var   m=j-1;  
   
   
  t1.insertRow().insertCell().innerHTML   =   "<input   type=radio   name=tt>其始时间:<input   type=text   name='Begin"+j+"'   value='"+Temp+"'>结束时间:<input   type=text   name='finsh"+j+"'   value='finsh"+j+"'>";  
   
              Temp=document.getElementsByTagName("input")[j*3-1].getAttribute("value");  
   
                              document.getElementsByTagName("input")[j*3+1].setAttribute("value",Temp);  
   
   
  //alert(document.getElementsByTagName("input").length);  
  j++;  
  }  
  function   del()  
  {  
  var   c   =   document.getElementsByName('tt');  
  for(var   i=0;   i<c.length;   i++)  
  {  
  if(c[i].checked)  
  t1.deleteRow(i);  
  }  
  }  
  </SCRIPT>  
  我把JS的代码已经写出来,请哪位大哥怎么把我上面js的文本参数获得  
  是用数组还是什么好呢Top

13 楼emin_lee(emin)回复于 2006-10-09 16:45:49 得分 0

mark!Top

14 楼W_Cracker()回复于 2006-10-09 17:11:50 得分 0

用Javascript做每点一次就加一个File  
  而且file在一个<form   encType=multipart/form-data>的里面  
  再用FileupLoad组件上传,它只会识别以上的FormTop

15 楼Sunny319(努力学习java中.)回复于 2006-10-09 18:37:20 得分 0

mark'Top

16 楼xiangbo520(充栋汗牛)回复于 2006-10-10 00:17:00 得分 20

建议你去看看关于“潇湘多文件上传组件”的资料Top

17 楼zhudiyouyou(竹笛悠悠)回复于 2006-10-10 10:14:08 得分 0

mark  
  收藏了Top

18 楼lliushine(小明)回复于 2006-10-10 10:42:48 得分 0

为什么不能用数组呢Top

19 楼cnyxlxw(黑夜给了我黑色的眼睛我用他来寻找光明)回复于 2006-10-10 12:24:56 得分 0

http://jf.jf.cnTop

20 楼hz890()回复于 2006-10-10 13:35:33 得分 20

我是用ASP+JavaScript实现的,JSP我不会  
  不过思路和客户端的JS你可以参考一下:  
  addFile.asp  
   
  <%Session("uploadinfo")=""%>  
  <html>  
  <head>  
  <SCRIPT>  
  var   d=0,filecnt=0;  
  function   addfile(i)  
  {  
  var   f   =   document.createElement("<div   id='filewapper_"   +   i.toString()   +   "'>");  
  var   newf   =   document.createElement("<input   type='file'   name='file_"   +   i.toString()   +   "'   id=file_'"   +   i.toString()   +   "'>");  
  f.insertAdjacentElement("BeforeEnd",newf);  
  var   newc   =   document.createElement("<input   type='button'   name='cnl_"   +   i.toString()   +   "'   value='取消'   onclick='delfile("   +   i.toString()   +   ");'>");  
  f.insertAdjacentElement("BeforeEnd",newc);  
  /*不必使用:  
  var   fws   =   document.getElementById("filewappers");  
  fws.insertAdjacentElement("BeforeEnd",f);  
  */  
  document.all("filewappers").insertAdjacentElement("beforeEnd",f)  
  d++;  
  filecnt++;  
  document.all("cnt").value=d;  
  }  
   
  function   delfile(i)  
  {  
  /*不必使用:  
  var   f   =   document.getElementById("filewapper_"   +   i.toString());  
  f.style.display   =   "none";  
  */  
  //document.all("filewapper_"+   i.toString()).style.display="none" //也可不用  
  document.all("filewapper_"+   i.toString()).removeNode(true);  
  filecnt--;  
  }  
  function   check()  
  {  
  if(filecnt>0)       //不必读取document.all("filewappers").children.length的值  
  {  
  /*sbmt++  
  if(sbmt>1)  
  {  
  alert("不得重复提交数据!")  
  return   false  
  }  
  else  
  {  
  return   true  
  }*/  
  fm.sbt.disabled=true  
  return   true  
  }  
  else  
  {  
  alert("请选择上传文件!");  
  return   false;  
  }  
  }  
  </SCRIPT>  
  </head>  
  <body>  
   
  <form   action="filesave.asp"   name="fm"   enctype="multipart/form-data"   method="post"   onsubmit="return   check()">  
  <div   id="filewappers">  
   
  </div>  
  <INPUT   TYPE="button"   VALUE="添加文件"   name="btn"   onclick="addfile(d);">  
  <input   type="hidden"   name="cnt">  
  <div   align=center><input   type="submit"   name="sbt"   value="确定"></div>  
  </form>  
  </body>  
  </html>  
   
   
   
  filesave.asp  
   
   
  <%  
  server.ScriptTimeout=3600  
  on   error   resume   next  
  %>  
  <!--#include   file="upload_5xsoft.inc"-->  
  <!--#include   file="function.asp"-->  
  <%  
          dim   upload,cnt  
          set   upload=new   upload_5xsoft  
          cnt=upload.form("cnt")  
          if   cnt<>""   then  
                  cnt=clng(cnt)  
                  if   err.number<>0   then  
                          cnt=0  
                  end   if  
                  if   cnt>0   then  
                          dim   path,i,fso,upfile,lmt,filename,filetype,fcnt,fsize,uploadinfo  
                          path="Upload"  
                          set   fso=server.CreateObject("Scripting.FileSystemObject")  
                          if   not   fso.FolderExists   then  
                                  fso.CreateFolder(server.MapPath(path))  
                          end   if  
                          set   fso=nothing  
                          fsize=0  
                          fcnt=0  
                          lmt=0  
                          for   i=0   to   cnt-1  
                                set   upfile=upload.file("file_"&i)  
                                fsize=upfile.filesize  
                                if   fsize>0   then  
                                  lmt=lmt+fsize  
                                  fcnt=fcnt+1  
                                end   if  
                                if   lmt>(15*1024*1024)   then  
                  exit   for  
                end   if  
                          next  
                          if   lmt>(15*1024*1024)   then  
                                  set   upfile=nothing  
                                  set   upload=nothing  
                                  response.Write   "<script   language='JavaScript'>alert('上传文件不得超过15MB!');history.back();</script>"  
                                  response.End  
                          else  
                                  if   lmt>0   then  
                                          redim   arr(fcnt-1)  
                                  fcnt=0  
                                  for   i=0   to   cnt-1  
                                          set   upfile=upload.file("file_"&i)  
                                          if   upfile.filesize>0   then  
                                                  filename=GetFileName(now(),"_"&(i+1))  
                                                  filetype=GetFileType(upfile.filename)  
                                                  upfile.SaveAs   server.MapPath(path&"/"&filename&filetype)  
                                                  arr(fcnt)=upfile.filename  
                                                  fcnt=fcnt+1  
                                          end   if  
                                  next  
                                  if   not   upfile   is   nothing   then  
                                          set   upfile=nothing  
                                  end   if  
                                  set   upload=nothing  
                                  uploadinfo="您成功上传了"&fcnt&"个文件,点击<a   href='addFile.asp'>此处</a>可继续上传。<br>"  
                                  uploadinfo=uploadinfo&"已上传文件:<br>"  
                                  for   i=0   to   fcnt-1  
                                          uploadinfo=uploadinfo&arr(i)&"<br>"  
                                  next  
                                  erase   arr  
                                  uploadinfo=uploadinfo&"上传文件总计:"&(lmt/1024)&"KB"  
                                  Session("uploadinfo")=uploadinfo  
                                  response.Redirect   "uploadinfo.asp"  
                                  response.End  
                          else  
                                  if   not   upfile   is   nothing   then  
                                          set   upfile=nothing  
                                  end   if  
                                  set   upload=nothing  
                                  response.Write   "<script   language='JavaScript'>alert('您没有上传任何有效文件!');history.back();</script>"                          
                                          response.End  
                          end   if  
                          end   if  
                  else  
                          response.Write   "<script   language='JavaScript'>alert('无效访问!');history.back();</script>"                          
                          response.End  
                  end   if  
          else  
                  response.Write   "<script   language='JavaScript'>alert('无效访问!');history.back();</script>"  
                  response.End  
          end   if  
  %>  
   
   
   
  uploadinfo.asp  
   
   
  <%  
          Response.Write   Session("uploadinfo")  
          Response.End  
  %>Top

21 楼sugarsupper(智慧之刃)回复于 2006-10-10 15:35:57 得分 0

 
  <div   id="files">  
  <div>  
  <input   type=button   onclick="add();"   value=Attacthment>  
   
   
  <script>  
  var   html="<input   name=title     type=file>   <input   type=button   value=Delete   onclick=\"remove(this)\">";  
  function   add()  
  {  
  var   o=document.all["files"];  
  var   div=document.createElement("div");  
  div.innerHTML=html;  
  o.appendChild(div);  
  //alert(o.innerHTML);  
  }  
  function   remove(obj)  
  {  
  obj.parentElement.parentElement.removeChild(obj.parentElement);  
  }  
  </script>  
  Top

相关问题

关键词

得分解答快速导航

  • 帖主:asdex1999
  • tonyzhangcn
  • eagleking012
  • kkgogo
  • xiangbo520
  • hz890

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

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