【问题标题】:How can I retain FileDialog Input value, even if user selects Cancel? (ASP.Net / Javascript)即使用户选择取消,如何保留 FileDialog 输入值? (ASP.Net/Javascript)
【发布时间】:2016-03-30 06:03:07
【问题描述】:

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

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

由于要附上fiddle链接的代码,这里是一些JS的sn-p

   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;
        }

});

您实际上是如何解决这个问题的?

【问题讨论】:

    标签: javascript jquery asp.net html asp.net-mvc-4


    【解决方案1】:

    试试这个:

    var filesSaved = {};
    $(document).ready(function() {
        $('#inputfile').on('change', function() {
            if (this.files.length > 0) {
                filesSaved = this.files;
            }
        });
    });
    

    您以空白的 fileSaved 对象开始您的页面。每次用户选择文件时,您将选择的文件设置为 fileSaved 对象。

    所以当用户取消时,你仍然需要处理 fileSaved 对象。

    【讨论】:

      猜你喜欢
      • 2023-03-13
      • 1970-01-01
      • 2021-08-19
      • 2011-05-20
      • 2015-02-14
      • 1970-01-01
      • 2016-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多