即使用户选择“取消”,如何保留FileDialog输入值?(ASP.Net/Javascript)
显然,如果您使用FileDialog将文件上载到web,然后用户重新打开文件对话框并单击“取消”,则先前选择的任何文件将不再保留为输入/文件值 下面是一些WIP代码的示例,您可以看到,我考虑将当前选定的文件存储在一个变量中,以便在用户选择“取消”时重新附加为输入文件,但显然这不起作用 由于我必须在fiddle链接中附带代码,下面是一些JS的片段即使用户选择“取消”,如何保留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]
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对象
因此,当用户取消时,您仍然需要处理文件保存的对象