使用js以编程方式添加输入文件标记

时间:2017-08-03 04:50:24

标签: javascript html

我想使用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;
&#13;
&#13;

1 个答案:

答案 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>