1

我有一个 iframe,它有一个输入标签,可让您浏览要上传的文件。

我当时正在做的是在我的隐藏表单数据中创建一个新的输入类型 =“文件”标签,该标签将填充文件的 src。

在所有内容的最后都有一个按钮,用户可以使用它来提交实际表单。

提交的表单会有文件,但它是空的。我在想可能有一些我不知道的潜在事件正在发生。在阅读它时,我还注意到如果源错误,它只会发送一个空文件。

这是如何正确完成的?

更新:查看数据时,dom 元素 input:file 有一个名为 files 的属性,这是我想要移动到新项目的属性。我的小提琴是:http: //jsfiddle.net/4vNXv/

我似乎无法让新数据从旧输入转移到新输入。

编辑:我在想 jQuery 可能能够通过复制整个对象来维护数据。通过$(this).clone()命令,但这也不起作用。

4

2 回答 2

0

编辑文件表单字段存在安全风险,因此在大多数浏览器上都被禁用。

请参阅在 Javascript 中克隆文件输入元素

在您的场景中,我相信您可以创建两个表单(一个在 iframe 中)并在按钮请求上提交。

请参阅一键提交两份表格

于 2012-09-10T13:59:35.347 回答
0

这里提到的关键问题是标题,上面写着 MOVE。通过移动整个元素来移动数据不应该出现安全风险问题。这背后的原因是没有创建或修改任何内容。输入保持不变,但它只是从一个区域移动到另一个区域。

要完成此解决方法,您应该执行以下操作:

1.  clone the object.  This will leave a placeholder there, so it doesnt look like anything moved.
2.  use appendTo to append it to the new form.  

我使用过的示例如下:

$item = $(this);
$clone = $(this).clone();
$item.after($clone).appendTo("#newForm");

这种变通方法创建了新对象,但因为它不是被移动或更改的东西,所以您不必担心内容会因安全风险而被打乱。原件被选中并从其当前位置移动到#newForm 中的新位置。

源信息: 将一个表单的文件输入域的值复制到另一个表单的输入域

于 2012-09-10T14:41:04.293 回答