Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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
即使用户选择“取消”,如何保留FileDialog输入值?(ASP.Net/Javascript)_Javascript_Jquery_Asp.net_Html_Asp.net Mvc 4 - Fatal编程技术网

即使用户选择“取消”,如何保留FileDialog输入值?(ASP.Net/Javascript)

即使用户选择“取消”,如何保留FileDialog输入值?(ASP.Net/Javascript),javascript,jquery,asp.net,html,asp.net-mvc-4,Javascript,Jquery,Asp.net,Html,Asp.net Mvc 4,显然,如果您使用FileDialog将文件上载到web,然后用户重新打开文件对话框并单击“取消”,则先前选择的任何文件将不再保留为输入/文件值 下面是一些WIP代码的示例,您可以看到,我考虑将当前选定的文件存储在一个变量中,以便在用户选择“取消”时重新附加为输入文件,但显然这不起作用 由于我必须在fiddle链接中附带代码,下面是一些JS的片段 var currentlySelectedFile = $("#AttachmentUpLoad_FileUpload")[0].files[0]

显然,如果您使用FileDialog将文件上载到web,然后用户重新打开文件对话框并单击“取消”,则先前选择的任何文件将不再保留为输入/文件值

下面是一些WIP代码的示例,您可以看到,我考虑将当前选定的文件存储在一个变量中,以便在用户选择“取消”时重新附加为输入文件,但显然这不起作用

由于我必须在fiddle链接中附带代码,下面是一些JS的片段

   var currentlySelectedFile = $("#AttachmentUpLoad_FileUpload")[0].files[0] ; 

$(document).on('change', '.btn-file :file', function () {
    var input = $(this),
        numFiles = input.get(0).files ? input.get(0).files.length : 1,
        label = input.val().replace(/\\/g, '/').replace(/.*\//, '');

        if(numFiles > 0){
                input.trigger('fileselect', [numFiles, label]);
        }
        else{
       /*  $("#AttachmentUpLoad_FileUpload").[0].files[0]  =(currentlySelectedFile); */
            return;
        }

});
你是如何解决这个问题的?

试试这个:

var filesSaved = {};
$(document).ready(function() {
    $('#inputfile').on('change', function() {
        if (this.files.length > 0) {
            filesSaved = this.files;
        }
    });
});
页面开始时,fileSaved对象为空。每次用户选择文件时,您都会将所选文件设置为fileSaved对象

因此,当用户取消时,您仍有文件保存对象要处理。

尝试以下操作:

var filesSaved = {};
$(document).ready(function() {
    $('#inputfile').on('change', function() {
        if (this.files.length > 0) {
            filesSaved = this.files;
        }
    });
});
页面开始时,fileSaved对象为空。每次用户选择文件时,您都会将所选文件设置为fileSaved对象

因此,当用户取消时,您仍然需要处理文件保存的对象