'how to make 2 inputs perform the same function?
I am basing myself on this tutorial for uploading images. The problem is that I have 2 inputs that have to do the same thing. in the first it goes up wonderfully, in the other it doesn't. I already changed ids and classes but it's still the same. I don't know what is wrong with me. I have a very basic knowledge of js so it is difficult for me to understand the JS code that appears
$(document).ready(function() {
document.getElementById('pro-image').addEventListener('change', readImage, false);
$(".preview-images-zone").sortable();
$(document).on('click', '.image-cancel', function() {
let no = $(this).data('no');
console.log({
no
});
$(".preview-image.preview-show-" + no).remove();
});
});
var num = 4;
function readImage() {
if (window.File && window.FileList && window.FileReader) {
var files = event.target.files; //FileList object
console.log({
files
});
var output = $(".preview-images-zone");
console.log({
output
});
for (let i = 0; i < files.length; i++) {
var file = files[i];
if (!file.type.match('image')) continue;
var picReader = new FileReader();
console.log({
picReader
});
picReader.addEventListener('load', function(event) {
var picFile = event.target;
console.log({
picFile
});
var html = '<div class="preview-image preview-show-' + num + '">' +
'<div class="image-cancel" data-no="' + num + '">x</div>' +
'<div class="image-zone"><img id="pro-img-' + num + '" src="' + picFile.result + '"></div>' +
'<div class="tools-edit-image"><a href="javascript:void(0)" data-no="' + num + '" class="btn btn-light btn-edit-image">edit</a></div>' +
'</div>';
console.log({
html
});
output.append(html);
console.log({
html
});
num = num + 1;
console.log({
num
});
});
picReader.readAsDataURL(file);
console.log({
picReader
});
}
$("#pro-image").val('');
} else {
console.log('Browser not support');
}
}
$(document).ready(function() {
document.getElementById('pro-images').addEventListener('change', readImage, false);
$(".preview-images-zones").sortable();
$(document).on('click', '.image-cancel', function() {
let no = $(this).data('no');
console.log({
no
});
$(".preview-image.preview-show-" + no).remove();
});
});
var num = 4;
function readImage() {
if (window.File && window.FileList && window.FileReader) {
var files = event.target.files; //FileList object
console.log({
files
});
var output = $(".preview-images-zones");
console.log({
output
});
for (let i = 0; i < files.length; i++) {
var file = files[i];
if (!file.type.match('image')) continue;
var picReader = new FileReader();
console.log({
picReader
});
picReader.addEventListener('load', function(event) {
var picFile = event.target;
console.log({
picFile
});
var html = '<div class="preview-image preview-show-' + num + '">' +
'<div class="image-cancel" data-no="' + num + '">x</div>' +
'<div class="image-zone"><img id="pro-img-' + num + '" src="' + picFile.result + '"></div>' +
'<div class="tools-edit-image"><a href="javascript:void(0)" data-no="' + num + '" class="btn btn-light btn-edit-image">edit</a></div>' +
'</div>';
console.log({
html
});
output.append(html);
console.log({
html
});
num = num + 1;
console.log({
num
});
});
picReader.readAsDataURL(file);
console.log({
picReader
});
}
$("#pro-images").val('');
} else {
console.log('Browser not support');
}
}
.preview-images-zone {
width: 100%;
border: 1px solid #ddd;
min-height: 180px;
padding: 5px 5px 0px 5px;
position: relative;
overflow: auto;
}
.preview-images-zone>.preview-image:first-child {
height: 185px;
width: 185px;
position: relative;
margin-right: 5px;
}
.preview-images-zone>.preview-image {
height: 90px;
width: 90px;
position: relative;
margin-right: 5px;
float: left;
margin-bottom: 5px;
}
.preview-images-zone>.preview-image>.image-zone {
width: 100%;
height: 100%;
}
.preview-images-zone>.preview-image>.image-zone>img {
width: 100%;
height: 100%;
}
.preview-images-zone>.preview-image>.tools-edit-image {
position: absolute;
z-index: 100;
color: #fff;
bottom: 0;
width: 100%;
text-align: center;
margin-bottom: 10px;
display: none;
}
.preview-images-zone>.preview-image>.image-cancel {
font-size: 18px;
position: absolute;
top: 0;
right: 0;
font-weight: bold;
margin-right: 10px;
cursor: pointer;
display: none;
z-index: 100;
}
.preview-image:hover>.image-zone {
cursor: move;
opacity: .5;
}
.preview-image:hover>.tools-edit-image,
.preview-image:hover>.image-cancel {
display: block;
}
.preview-image:hover>.tools-edit-image {
display: none;
}
.ui-sortable-helper {
width: 90px !important;
height: 90px !important;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<fieldset class="form-group">
<input type="file" name="fotosCarro" class="form-control" multiple="" id="pro-image" click="$('#pro-image').click()" accept="image/*" required="">
<div class="preview-images-zone">
</fieldset>
<div class="preview-images-zone"></div>
<fieldset class="form-group">
<input type="file" name="garantiaCarro" class="form-control" multiple="" id="pro-images" click="$('#pro-images').click()" accept="image/*" required="">
<div class="preview-images-zones">
</fieldset>
<div class="preview-images-zones"></div>
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
