Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 克隆现有blueimp文件上载表_Javascript_Jquery_Jquery File Upload_Blueimp - Fatal编程技术网

Javascript 克隆现有blueimp文件上载表

Javascript 克隆现有blueimp文件上载表,javascript,jquery,jquery-file-upload,blueimp,Javascript,Jquery,Jquery File Upload,Blueimp,我在当前项目中使用blueimp jquery文件上载 我想克隆我现有的文件上载表。在新克隆上,我应该能够进行更改,这些更改不会影响第一个表 表单可能包含一些上载到浏览器但未发送到服务器的文件 如本问题所述,我可以创建一个新表单并添加上传到服务器的照片,如下所示: $(this).fileupload('option', 'done').call(this, null, {result: result}); 但在我的例子中,照片不会发送到服务器,而是保存在现有的表单/表格中 注意:我将在编辑视

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

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

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

如本问题所述,我可以创建一个新表单并添加上传到服务器的照片,如下所示:

$(this).fileupload('option', 'done').call(this, null, {result: result});
但在我的例子中,照片不会发送到服务器,而是保存在现有的表单/表格中


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

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

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

我的答案是缺少任何代码示例,因为最终产品的实际代码可能会因项目而异。如果您想将您的项目的简化版本放在一起,它可能会帮助其他人。

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

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

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

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

嗨,马特,谢谢你的回答。我也有同样的想法,但我不知道如何用bluimp插件“用必要的数据更新‘编辑表’并显示”。我不知道如何使用从以前的表中收集的data.files和data.fileInput fileuploadadded eventnilgundag重新创建ui(),这将完全取决于您尝试创建的功能,顺便说一句,您从未指定过该功能。使用blueimp的内置回调功能,您已经走上了正确的道路,这将允许您在代码域中保留对文件对象的引用。然而,如上所述,这可以通过十几种不同的方式完成,如果没有更多的信息/示例,很难给你更多。请记住,blueimp只是一个js框架,而不是一个魔术,我总是建议在遇到问题时阅读框架的代码库。