取消文件选择 window 后,如何在 html 文件类型元素中自动选择先前上传的文件?
How to autoselect previously uploaded file in html file type element when the file selection window is cancelled?
我有以下 html 和 javascript 代码。
function run() {
alert(document.getElementById("file").value);
}
<input type="file" id="file" onchange="run()">
这里,当用户点击"browse"按钮并选择一个文件时,javascript提示用户选择的文件。问题是,当用户再次单击 "browse" 按钮但现在单击取消而不进行任何选择时选择文件后,javascript 代码没有任何提示。我的意思是,即使用户取消了 window,javascript 仍应提醒之前选择的文件。
而且我只在 chrome 上遇到这个问题,在 firefox 或 IE 上没有。代码非常基础,所以我猜代码不是问题。我认为这是一个跨浏览器问题。任何的想法 ?提前致谢。
您可以在 chrome 浏览器中使用以下代码。
var prev;
$("input[type=file]").bind("click", function() {
prev=$(this).val();
});
$("input[type=file]").bind("change", function() {
var selected_file_name = $(this).val();
if ( selected_file_name.length > 0 ) {
/* Some file selected */
alert("Selected File Name : "+ selected_file_name);
}
else {
/* No file selected or cancel/close
dialog button clicked */
/* If user has select a file before,
when they submit, it will treated as
no file selected */
alert("Previously selected File Name : "+ prev);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="file">
我有以下 html 和 javascript 代码。
function run() {
alert(document.getElementById("file").value);
}
<input type="file" id="file" onchange="run()">
这里,当用户点击"browse"按钮并选择一个文件时,javascript提示用户选择的文件。问题是,当用户再次单击 "browse" 按钮但现在单击取消而不进行任何选择时选择文件后,javascript 代码没有任何提示。我的意思是,即使用户取消了 window,javascript 仍应提醒之前选择的文件。
而且我只在 chrome 上遇到这个问题,在 firefox 或 IE 上没有。代码非常基础,所以我猜代码不是问题。我认为这是一个跨浏览器问题。任何的想法 ?提前致谢。
您可以在 chrome 浏览器中使用以下代码。
var prev;
$("input[type=file]").bind("click", function() {
prev=$(this).val();
});
$("input[type=file]").bind("change", function() {
var selected_file_name = $(this).val();
if ( selected_file_name.length > 0 ) {
/* Some file selected */
alert("Selected File Name : "+ selected_file_name);
}
else {
/* No file selected or cancel/close
dialog button clicked */
/* If user has select a file before,
when they submit, it will treated as
no file selected */
alert("Previously selected File Name : "+ prev);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="file">