Javascript 从列表中删除图像
这是我的文本字段Javascript 从列表中删除图像,javascript,jquery,Javascript,Jquery,这是我的文本字段 <input type="file" name="noteMedia[]" multiple id="ssi-upload" /> 我正在添加复制粘贴功能,所以我这样做了 document.onpaste = function(event){ var items = (event.clipboardData || event.originalEvent.clipboardData).items;
<input type="file" name="noteMedia[]" multiple id="ssi-upload" />
我正在添加复制粘贴功能,所以我这样做了
document.onpaste = function(event){
var items = (event.clipboardData || event.originalEvent.clipboardData).items;
const dTLocal = new DataTransfer();
for (index in items) {
var item = items[index];
if (item.kind === 'file') {
var blob = item.getAsFile();
var reader = new FileReader();
dTLocal.items.add(blob);
fileInput.files = dTLocal.files;
reader.readAsDataURL(blob);
}
}
$("#ssi-upload").change();
i=i+1
}
这是我的#ssi upload.change()
结果不是删除文件,而是添加另一个文件。那么,我该如何修复它呢
删除$(“#ssi upload”).change()
并将类添加到td
中,如img preview
并将此参数传递到deleteImage
,以便访问该元素。检查下面的代码片段
const dT=new DataTransfer();
const fileInput=document.getElementById(“ssi上载”);
var i=0;
设imageIndex=0;
document.onpaste=函数(事件){
var items=(event.clipboardData | | event.originalEvent.clipboardData).items;
const dTLocal=新数据传输();
用于(项目索引){
var项目=项目[索引];
如果(item.kind=='file'){
var blob=item.getAsFile();
var reader=new FileReader();
dTLocal.items.add(blob);
fileInput.files=dTLocal.files;
reader.readAsDataURL(blob);
}
}
$(“#ssi上载”).change();
i=i+1
}
$(“#ssi上载”).change(函数(){
$(“#图像预览”).html(“”);
var file=$(this)[0]。文件[0];
dT.items.add(文件);
fileInput.files=dT.files;
imageIndex=0;
数组.from(dT.items).forEach(item=>{
var blob=item.getAsFile();
var image=新映像()
var reader=new FileReader();
var uri=URL.createObjectURL(blob);
var img=新图像();
img.src=uri;
var imagePreview=“”;
$(“#imagePreview”)。追加(“+imagePreview+”);
imageIndex=imageIndex+1
});
});
函数deleteImage(索引,obj){
const fileListArr=Array.from(fileInput.files)
fileListArr.拼接(索引,1);
console.log(fileListArr);
$(obj).最近('.img preview').remove();
//$(“#ssi上传”).change()
}
删除$(“#ssi upload”).change()
并将类添加到td
中,如img preview
并将此参数传递到deleteImage
,以便您可以访问该元素。检查下面的代码片段
const dT=new DataTransfer();
const fileInput=document.getElementById(“ssi上载”);
var i=0;
设imageIndex=0;
document.onpaste=函数(事件){
var items=(event.clipboardData | | event.originalEvent.clipboardData).items;
const dTLocal=新数据传输();
用于(项目索引){
var项目=项目[索引];
如果(item.kind=='file'){
var blob=item.getAsFile();
var reader=new FileReader();
dTLocal.items.add(blob);
fileInput.files=dTLocal.files;
reader.readAsDataURL(blob);
}
}
$(“#ssi上载”).change();
i=i+1
}
$(“#ssi上载”).change(函数(){
$(“#图像预览”).html(“”);
var file=$(this)[0]。文件[0];
dT.items.add(文件);
fileInput.files=dT.files;
imageIndex=0;
数组.from(dT.items).forEach(item=>{
var blob=item.getAsFile();
var image=新映像()
var reader=new FileReader();
var uri=URL.createObjectURL(blob);
var img=新图像();
img.src=uri;
var imagePreview=“”;
$(“#imagePreview”)。追加(“+imagePreview+”);
imageIndex=imageIndex+1
});
});
函数deleteImage(索引,obj){
const fileListArr=Array.from(fileInput.files)
fileListArr.拼接(索引,1);
console.log(fileListArr);
$(obj).closest('.img preview').remove();
//$(“#ssi上传”).change()
}
谢谢现在我可以删除图像而不会出错,但是当我复制另一个文件时,删除的文件会再次显示。复制另一个文件是什么意思?复制并粘贴新文件您可以创建一个带有复制和粘贴示例的片段吗?谢谢现在我可以删除图像而不会出错,但是当我复制另一个文件时,删除的文件会再次出现。复制另一个文件是什么意思?复制并粘贴新文件你能用复制并粘贴示例创建一个代码段吗?
document.onpaste = function(event){
var items = (event.clipboardData || event.originalEvent.clipboardData).items;
const dTLocal = new DataTransfer();
for (index in items) {
var item = items[index];
if (item.kind === 'file') {
var blob = item.getAsFile();
var reader = new FileReader();
dTLocal.items.add(blob);
fileInput.files = dTLocal.files;
reader.readAsDataURL(blob);
}
}
$("#ssi-upload").change();
i=i+1
}
$("#ssi-upload").change(function(){
$("#imagePreview").html("");
var file = $(this)[0].files[0];
dT.items.add(file);
fileInput.files = dT.files;
imageIndex = 0;
Array.from(dT.items).forEach(item => {
var blob = item.getAsFile();
var image = new Image()
var reader = new FileReader();
var uri = URL.createObjectURL(blob);
var img = new Image();
img.src = uri;
var imagePreview = "<img width = '150px' height='100px' src='"+uri+"'>";
$("#imagePreview").append('<td style="text-align:center; vertical-align:middle">'+imagePreview+'<p class="text-center" align="text-center"> <a onclick="return deleteImage('+imageIndex+');" href="#"> Delete </a></p> </td>');
imageIndex = imageIndex + 1
});
});
function deleteImage(index){
const fileListArr = Array.from(fileInput.files)
fileListArr.splice(index, 1)
$("#ssi-upload").change()
}