I am creating an album website just to learn Javascript. I have input boxes to add the title, artist, and year of an album. When "Add Album" is pressed, it inserts this info into an array on an object called albumList, then displays the info in list elements. I want to know if it's possible to allow the user to also upload an image, which is also pushed into the array and displayed along with the title, artist, and year.
I have tried everything I can think of and googled for a whole day but no luck. Is this even possible? This is my JS currently, I have removed everything I tried to do with uploading images to give me a clean slate, so to speak:
var albumList = {
albums: [],
addAlbum: function(title, artist, year) {
this.albums.push({
title,
artist,
year
});
}
};
var handlers = {
addAlbum: function() {
var addAlbumTitle = document.getElementById("addAlbumTitle");
var addAlbumArtist = document.getElementById("addAlbumArtist");
var addAlbumYear = document.getElementById("addAlbumYear");
albumList.addAlbum(addAlbumTitle.value, addAlbumArtist.value, addAlbumYear.valueAsNumber);
view.displayAlbums();
}
};
//Only used to display info on screen.
var view = {
displayAlbums: function() {
var albumUl = document.querySelector('ul');
albumUl.innerHTML = '';
albumList.albums.forEach(function(album, position) {
var albumLi = document.createElement('li');
var showAlbum = '';
showAlbum = album.title + ' ' + album.artist + ' ' + album.year;
albumLi.id = position;
albumLi.textContent = showAlbum;
albumUl.appendChild(albumLi);
});
}
};
And my HTML:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h1>My top 100 albums</h1>
<div>
<input id="addAlbumTitle" type="text" placeholder="Title">
<input id="addAlbumArtist" type="text" placeholder="Artist">
<input id="addAlbumYear" type="number" placeholder="Year">
</div>
<button onclick="handlers.addAlbum()">Add Album</button>
<ul></ul>
<script src="test.js"></script>
</body>
</html>