gpt4 book ai didi

javascript - 使用 jQuery 删除选定的文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:28:47 25 4
gpt4 key购买 nike

尝试使用 jQuery 显示选定的图像并在单击图像时删除图像。

单击时删除图像工作正常,实际上问题是它没有从表单中删除。

$(document).ready(function() {
/*multiple image preview first input*/

$("#files").on("change", handleFileSelect);

selDiv = $("#selectedFiles");
$("#myForm").on("submit", handleForm);

$("body").on("click", ".selFile", removeFile);

/*end image preview */
});


var selDiv = "";
// var selDivM="";
var storedFiles = [];

function handleFileSelect(e) {

var files = e.target.files;
var filesArr = Array.prototype.slice.call(files);
var device = $(e.target).data("device");
filesArr.forEach(function(f) {

if (!f.type.match("image.*")) {
return;
}
storedFiles.push(f);

var reader = new FileReader();
reader.onload = function(e) {
var html = "<div><img src=\"" + e.target.result + "\" data-file='" + f.name + "' class='selFile' title='Click to remove'>" + f.name + "<br clear=\"left\"/></div>";
$("#selectedFiles").append(html);
}
reader.readAsDataURL(f);
});

}

function handleForm(e) {
e.preventDefault();
var data = new FormData();

for (var i = 0, len = storedFiles.length; i < len; i++) {
data.append('files', storedFiles[i]);
}

var xhr = new XMLHttpRequest();
xhr.open('POST', 'handler.cfm', true);

xhr.onload = function(e) {
if (this.status == 200) {
console.log(e.currentTarget.responseText);
alert(e.currentTarget.responseText + ' items uploaded.');
}
}

xhr.send(data);
}

function removeFile(e) {
var file = $(this).data("file");
for (var i = 0; i < storedFiles.length; i++) {
if (storedFiles[i].name === file) {
storedFiles.splice(i, 1);
break;
}
}
$(this).parent().remove();
}
#selectedFiles img
{
max-width: 200px;
max-height: 200px;
float: left;
margin-bottom: 10px;
}
#userActions input {
width: auto;
margin: auto;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<form action="index.php" id="myForm" name="myForm" enctype="multipart/form-data" method="post" accept-charset="utf-8">
desktop:
<input type="file" id="files" name="files" multiple>
<div id="selectedFiles"></div>
<br/>
</form>
看到这个: https://jsfiddle.net/dvy10ms7/1/

看图片

enter image description here

enter image description here

enter image description here

最佳答案

这在下面的代码片段中得到修复。 jQuery 可以选择删除文件元素的值,就像我们在文本框中所做的一样,例如 $("#files").val("") 请检查。

$(document).ready(function() {
/*multiple image preview first input*/

$("#files").on("change", handleFileSelect);

selDiv = $("#selectedFiles");
$("#myForm").on("submit", handleForm);

$("body").on("click", ".selFile", removeFile);

/*end image preview */
});


var selDiv = "";
// var selDivM="";
var storedFiles = [];

function handleFileSelect(e) {

var files = e.target.files;
var filesArr = Array.prototype.slice.call(files);
var device = $(e.target).data("device");
filesArr.forEach(function(f) {

if (!f.type.match("image.*")) {
return;
}
storedFiles.push(f);

var reader = new FileReader();
reader.onload = function(e) {
var html = "<div><img src=\"" + e.target.result + "\" data-file='" + f.name + "' class='selFile' title='Click to remove'>" + f.name + "<br clear=\"left\"/></div>";
$("#selectedFiles").append(html);
}
reader.readAsDataURL(f);
});

}

function handleForm(e) {
e.preventDefault();
var data = new FormData();

for (var i = 0, len = storedFiles.length; i < len; i++) {
data.append('files', storedFiles[i]);
}

var xhr = new XMLHttpRequest();
xhr.open('POST', 'handler.cfm', true);

xhr.onload = function(e) {
if (this.status == 200) {
console.log(e.currentTarget.responseText);
alert(e.currentTarget.responseText + ' items uploaded.');
}
}

xhr.send(data);
}


function removeFile(e) {
var file = $(this).data("file");
for (var i = 0; i < storedFiles.length; i++) {
if (storedFiles[i].name === file) {
storedFiles.splice(i, 1);
break;
}
}
$(this).parent().remove();
$("#files").val("");
}
#selectedFiles img
{
max-width: 200px;
max-height: 200px;
float: left;
margin-bottom: 10px;
}
#userActions input {
width: auto;
margin: auto;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<form action="index.php" id="myForm" name="myForm" enctype="multipart/form-data" method="post" accept-charset="utf-8">
desktop:
<input type="file" id="files" name="files" multiple>
<div id="selectedFiles"></div>
<br/>
</form>

关于javascript - 使用 jQuery 删除选定的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36147032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com