input中选择文件后,却显示未选择任何文件?
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
//可以选择多个文件加载在页面
function read() {
var file = document.getElementById("file");
var imgDiv = document.getElementById("imgDiv");
for (var i = 0; i < file.files.length; i++) {
let reader = new FileReader();
var file1 = file.files[i];
reader.readAsDataURL(file1);
reader.onload = function (result) {
//reader对象的result属性存储流读取的数据
imgDiv.innerHTML += '<img src="' + reader.result + '" alt=""/>'
}
}
}
</script>
</head>
<body>
<div id="imgDiv">
<input type="file" id="file" onchange="read()" accept="image/*">
</div>
</body>
</html>

就是我打算选择一个图片后可以立马显示,但是我发现,当吧input标签放在div标签(这个div标签是之后需要使用img标签来显示图片的)里面的时候,就算选择文件后,且图片能正常显示,input却始终显示未选择任何文件

但是当吧input标签放在div标签外面的时候,图片可以正常显示,且会显示已选择文件
放在外面后的代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
//可以选择多个文件加载在页面
function read() {
var file = document.getElementById("file");
var imgDiv = document.getElementById("imgDiv");
for (var i = 0; i < file.files.length; i++) {
let reader = new FileReader();
var file1 = file.files[i];
reader.readAsDataURL(file1);
reader.onload = function (result) {
//reader对象的result属性存储流读取的数据
imgDiv.innerHTML += '<img src="' + reader.result + '" alt=""/>'
}
}
}
</script>
</head>
<body>
<input type="file" id="file" onchange="read()"
accept="image/*">
<div id="imgDiv">
</div>
</body>
</html>

求大佬讲解这是为什么,我最近在开发自己的博客系统,因为要上传九宫格相片,就是点击一个小格子后,图片会立马显示在这个小格子中,图片能够正常显示,但是input显示未选择任何文件!!!,但是数据传输到后端的时候从input获取的文件数据为None,希望有大佬能帮帮忙
