<script type="text/javascript">//删除文件选择框function removeFile(id) {var new_tr = id.parentNode;try {//new_tr.removeNode(true);// just ie , not w3c;// other ideavar tmp = new_tr.parentNode;// 为了在ie和firefox下都能正常使用,就要用另一个方法代替,最取上一层的父结点,然后remove.tmp.removeChild(new_tr); } catch(e) {}}//添加文件选择框function addFile(id){ var str = "<div><input type="file" runat="server" name="file" onKeyDown="this.blur();" oncontextmenu="return false" /><input type="button" value="删除" style="height:22px;" onclick="removeFile(this)" /></div>" insertHtml("beforeend",document.getElementById(id),str); }</script>页面上这样引用:
<div><input type="button" value="添加附件(Add)" onclick="addFile("myfile")"></div><div id="myfile"></div>在addFile函数中引用了另一个函数:insertHtml,这个函数主要是针对insertAdjacentHTML在firefox下无效的情况重写的,具体可以通过搜索insertAdjacentHTML找到。
<inputtype=filename=ttt> <inputtype=buttononclick="ttt.select();document.execCommand("Delete");" value=清除file框的内容>第二个案例
点击按钮“选择更多后”,可以添加很多选择文件:
点击按钮“删除”后:
实现代码:
<!DOCTYPE html><html><head><meta charset="utf-8"><title>选择文件</title><style type="text/css">*{margin:0px;padding:0px;}div{margin:10px;}</style><script>//当点击添加更多时,增加一个DIV//先增加两个inputfunction addFile(){var fragment=document.createDocumentFragment();var divNode=document.getElementById("container");var newDiv=document.createElement("div");newDiv.setAttribute("id","file");fragment.appendChild(newDiv);var newInput=document.createElement("input");newInput.setAttribute("type","file");newInput.setAttribute("name","选择文件");newDiv.appendChild(newInput);var newInput=document.createElement("input");newInput.setAttribute("type","button");newInput.setAttribute("value","删除");newInput.setAttribute("onclick","delFile()");newInput.setAttribute("id","1");newDiv.appendChild(newInput);divNode.appendChild(fragment);}function delFile(){var divNode=document.getElementById("container");divNode.removeChild(divNode.firstElementChild);}</script></head><body><input type="button" value="选择更多" onclick="addFile()"/><div id="container"><div id="file"><input type="file" name="选择文件"/><input type="button" value="删除" onclick="delFile()" /></div></div></body></html>代码瑕疵:!!!!在删除函数中,我选择的是删除第一个元素节点,而不是真正意义上的删除当前按钮,不知道怎么改善,求改正。