我想使用js将输入(类型文件)字段添加到我的html中。我已经完成了,但问题是当用户选择一个文件然后点击"新文件"按钮选择另一个,prevoius选择文件消失,并说没有选择文件。有什么问题?
function newfile(){
var divv=document.getElementById("files");
var name="files"+divv.childNodes.length;
divv.innerHTML+='<div><input id="'+name+'" name="'+name+'" type="file" accept="*" class="col-lg-11 col-md-10 col-sm-10 col-sx-6"></div>';
}
&#13;
<div class="col-sm-10">
<div id="files"></div>
<a class="btn btn-primary col-sx-12" onclick="newfile()">New file</a>
</div>
&#13;
答案 0 :(得分:1)
这是因为每次使用divv.innerHTML+='<div><input id="'+name+'" name="'+name+'" type="file" accept="*" class="col-lg-11 col-md-10 col-sm-10 col-sx-6"></div>'
时,divv中的所有内容都将被新内容替换,之前的信息将丢失。
你可以在这里使用appendChild()
,如下所示:
function newfile(){
var divv=document.getElementById("files");
var name="files"+divv.childNodes.length;
var inputNode = document.createElement("input");
inputNode.id = name;
inputNode.name = name;
inputNode.type = 'file';
divv.appendChild(inputNode);
}
<div class="col-sm-10">
<div id="files"></div>
<a class="btn btn-primary col-sx-12" onclick="newfile()">New file</a>
</div>