2013-03-19 85 views
0

我有这个让用户上传图片。我想限制图片的数量为4.首先它只显示一个输入字段,然后如果用户想要添加更多,他们可以点击Button-Add-icon.png并出现另一个输入字段。当他们达到四个输入,他们决定删除一个,他们点击Button-Delete-icon.png。document.createElement无法在IE 8及以下版本中工作

这整个事情在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> 
+0

我不是100%确定的,但我认为不是做这些附加,你应该设置每个的innerHTML来解决问题,让我找到它。 – Ohgodwhy 2013-03-19 21:20:56

+0

为什么当你根本不使用jquery时,这会导致jquery? – Cyrus 2013-03-19 21:31:23

+0

在'createElement'调用之后变量'newrow','newcol'和'input'变成'null'还是'undefined'?你有错误信息吗?你怎么知道'createElement'不工作? – ajp15243 2013-03-19 21:38:42

回答

1

要添加的行作为一个孩子的错误的元素。

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

一个简单的办法是将tbody元素明确写了,给它一个ID,并在tbody元素,而不是在table元素插入新行。

<table> 
    <tbody id="tb1"> 
     <tr><td></td></tr> 
    </tbody> 
</table> 
相关问题