3

我在当前项目中使用 blueimp jquery 文件上传。

我想克隆我现有的文件上传表。在新克隆上,我应该能够进行更改,这些更改不会影响第一个表。

表单可能包含一些上传到浏览器但未发送到服务器的文件。

正如这个问题中所证明的,我如何预加载现有文件并将它们显示在 blueimp 上传表中?我可以创建一个新表单并添加上传到服务器的照片,如下所示:

$(this).fileupload('option', 'done').call(this, null, {result: result});

但在我的情况下,照片不会发送到服务器,而是保存在现有的表格/表格中。

注意:我将在我的编辑视图中使用克隆。编辑视图有一个取消按钮。如果用户按下取消,我希望能够返回到原始状态。

4

2 回答 2

2

使用插件的“程序化文件上传”功能,我能够在新表中显示上一个表的文件和文件输入,如下所示:

$('#fileupload').fileupload('add', {
    files: filesList,
    fileInput: $(this)
});

https://github.com/blueimp/jQuery-File-Upload/wiki/API#programmatic-file-upload https://github.com/blueimp/jQuery-File-Upload/wiki/API#programmatic-file-uploads -for-browsers-without-support-for-xhr-file-uploads

注意我能够通过使用插件的“fileuploadadded”事件从 previos 表中收集文件和 fileInputs

$('#fileupload').bind('fileuploadadded', function (e, data) {/* ... */});

https://github.com/blueimp/jQuery-File-Upload/wiki/Options#additional-callback-options-for-the-ui-version

于 2013-10-30T08:10:13.580 回答
1

我们可能需要更多信息或更多代码才能真正提供帮助,但我的印象是您只是在尝试创建第二个为用户添加功能的 html 表。用户可以进行更改,如果按下“确认”按钮,则编辑将应用于原始表格。如果是这种情况,那么 blueimp 框架,甚至文件最终可能会或可能不会上传到服务器的事实,不应被视为此 UI 场景的因素。

Jquery 有一个方法clone,它允许你复制一个表并将它附加到你想要的 DOM 中。然而,这个新表将具有新功能这一事实让我认为简单的克隆不是您想要的。预先制作另一个具有所有功能并默认隐藏的“编辑表”可能会更好。然后,当用户想要编辑特定项目时,您将使用必要的数据更新“编辑表”并显示它。如果用户点击“取消”只是隐藏编辑表,如果用户点击“确认”隐藏编辑表并将编辑保存到该项目的 js 对象,则更新原始表以匹配编辑。

我的回答是故意缺少任何代码示例,因为最终产品的实际代码可能因项目而异。如果您想在jsFiddle上整理项目的简化版本,它可能会对其他人有所帮助。

于 2013-10-27T19:32:13.080 回答