0

我有这个让用户上传图片。我想将图片的数量限制为 4。起初它只显示一个输入字段,然后如果用户想要添加更多,他们可以单击 Button-Add-icon.png 并出现另一个输入字段。当他们达到四个输入并决定删除一个时,他们单击 Button-Delete-icon.png。

整个过程在 Firefox、Chrome、Seamonkey 和 IE9 上运行良好。但它不适用于 IE8、IE7 及之前的版本。有人可以提示如何修复它吗?

谢谢

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org 
 /TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 <title>Document sans titre</title>

 <script type="text/javascript">
   var totalItems = 0;
   function addItems()
 {
   if(totalItems < 3) 
  {
  var table1 = document.getElementById('tab1');
  var newrow = document.createElement("tr");
  var newcol = document.createElement("td");
  var input = document.createElement("input");
  input.type="file";
  input.name="image[]";
  newcol.appendChild(input);
  newrow.appendChild(newcol);
  table1.appendChild(newrow);
  totalItems++;
  } else {
    //Display your message here.. 
         }
 }


  function remItems()
{
var table1 = document.getElementById('tab1');
var lastRow = table1.rows.length;
if(lastRow>=2) 
 {
 table1.deleteRow(lastRow-1);
 totalItems--; 
 }
}

 </script>
 </head>

 <body>

 <table align="center" border="0" id="tab1" >
  <tr>
   <td width="218" align="center"><input type="file" name="image[]" /></td>
      <td width="54" align="center"><img src="images/Button-Add-icon.png"  
      style="cursor:pointer" onclick="addItems()" />
      </td>
   <td><img src="images/Button-Delete-icon.png"  style="cursor:pointer" 
    onclick="remItems()" />
   </td>
  </tr>
 </table>

  <table align="center" border="0" id="tab2">
  </table>

 </body>
 </html>
4

1 回答 1

1

您正在将该行作为子元素添加到错误的元素中。

HTML 表格总是有一个tbody元素作为子元素,所有tr元素都在里面。如果您编写的 HTML 包含一个没有tbody元素的表格,它将自动创建,但是稍后更改表格时,您必须考虑该tbody元素。

一个简单的解决方法是显式地编写元素,给它一个 id,然后在元素中而不是在元素中tbody插入新行。tbodytable

<table>
    <tbody id="tb1">
        <tr><td></td></tr>
    </tbody>
</table>
于 2013-03-19T21:55:01.273 回答