调用JavaScript函数后重置文件上载字段

调用JavaScript函数后重置文件上载字段,javascript,html,file,upload,Javascript,Html,File,Upload,我有一个通过JavaScript函数生成文件上传字段的链接。但是,当我添加一个上载字段,然后选择一个文件,然后添加另一个字段时,该文件将从第一个字段消失。我不明白为什么会这样 jsFiddle: 请注意,JSFIDLE给出了一个错误“addPhoto()未定义”,我也不理解这个错误,因为函数在JavaScript部分中定义得很清楚。这个错误不会发生在我的实际页面上。有人能告诉我这里发生了什么吗?您正在编辑innerHTML。这意味着您将DOM序列化为HTML,然后更改HTML并将HTML转换回

我有一个通过JavaScript函数生成文件上传字段的链接。但是,当我添加一个上载字段,然后选择一个文件,然后添加另一个字段时,该文件将从第一个字段消失。我不明白为什么会这样

jsFiddle:


请注意,JSFIDLE给出了一个错误
“addPhoto()未定义”
,我也不理解这个错误,因为函数在JavaScript部分中定义得很清楚。这个错误不会发生在我的实际页面上。有人能告诉我这里发生了什么吗?

您正在编辑
innerHTML
。这意味着您将DOM序列化为HTML,然后更改HTML并将HTML转换回DOM

这会破坏该值,因为:

  • 属性将包含默认值
  • 不能为文件输入设置
    属性

改为使用。

“请注意,JSFIDLE给出了一个错误‘addPhoto()未定义’,我也不理解,因为函数在JS部分中定义得很清楚。”-请查看左侧的首选项。代码被包装在分配给
onload
的函数中。这意味着
addPhoto
被限定在该函数的范围内,无法从该函数外部访问(例如,从内部事件属性),事实上,我没有意识到存在偏好-一定是我以前做过的一些小提琴留下的。谢谢,appendChild完成了这个技巧,看起来是最容易使用的。我会在5分钟内接受你的回答。