gpt4 book ai didi

javascript - 如何解决 IE 7 和 8 关于创建动态文件输入字段的错误?

转载 作者:行者123 更新时间:2023-11-30 13:24:57 24 4
gpt4 key购买 nike

当我尝试通过动态输入字段上传多个文件时,我遇到了 Internet Explorer 7 和 8 的问题。对于动态,我的意思是用户可以单击运行一些 JavaScript 的“添加”按钮来创建新的文件输入字段。所以他们最终像下面这样:

<input type="file" name="uploads[0]"/>
<input type="file" name="uploads[1]"/>
<input type="file" name="uploads[2]"/>

它适用于 Firefox、Chrome 和 Internet Explorer 9,但在 Internet Explorer 7 和 8 中,我在服务器端的 Struts2 中遇到转换错误。我的方法需要一个文件列表,但我收到一个包含文件路径的字符串。

这是怎么引起的,我该如何解决?

最佳答案

鉴于您创建表单元素的 JavaScript 代码在 IE6/7/8 中中断,这只能意味着您(间接)使用 document.cloneNode() 创建一个新的输入元素。你不应该那样做。由于一个错误,IE6/7/8 不允许您更改 name 属性,它会与原始源元素保持相同。

您应该改为使用 document.createElement() 来创建全新的元素。这反过来也有一个 IE6/7(不是 8!)特定的错误。您不能通过 setAttribute() 设置 name 属性,而是需要像这样直接在 createElement() 函数中指定它。

document.createElement('<input name="uploads[' + index + ']">');

另见:

关于javascript - 如何解决 IE 7 和 8 关于创建动态文件输入字段的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8823134/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com