Advertisement
GeorgiLukanov87

Music site

Feb 24th, 2023 (edited)
965
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.     // Get the form
  3.     const form = document.querySelector('form');
  4.     // Get input fields
  5.     const genreInput = document.querySelector('#genre');
  6.     const nameInput = document.querySelector('#name');
  7.     const authorInput = document.querySelector('#author');
  8.     const dateInput = document.querySelector('#date');
  9.     // Get likes paragraph
  10.     const likes = document.querySelector('#total-likes .likes p')
  11.     var totalLikes = 0;
  12.  
  13.     // Listen for the form submit event
  14.     form.addEventListener('submit', function (event) {
  15.         if (!(genreInput.value === '' ||
  16.             nameInput.value === '' ||
  17.             authorInput.value === '' ||
  18.             dateInput.value === '')) {
  19.  
  20.             event.preventDefault();
  21.             const allHitsContainer = document.getElementsByClassName('all-hits-container')[0];
  22.             const savedContainer = document.getElementsByClassName('saved-container')[0];
  23.  
  24.             // Create main div to wrap all the info -> img and h2s
  25.             let newDiv = document.createElement('div');
  26.             newDiv.classList.add('hits-info');
  27.             // Create img tag and add img info
  28.             let img = document.createElement('img');
  29.             img.src = './static/img/img.png';
  30.  
  31.             // Create 4 h2 and add info -> genre , name , author , date
  32.             let genreH2 = document.createElement('h2');
  33.             genreH2.textContent = "Genre:" + " " + genreInput.value;
  34.  
  35.             let nameH2 = document.createElement('h2');
  36.             nameH2.textContent = "Name:" + " " + nameInput.value;
  37.  
  38.             let authorH2 = document.createElement('h2');
  39.             authorH2.textContent = "Author:" + " " + authorInput.value;
  40.  
  41.             let dateH3 = document.createElement('h3');
  42.             dateH3.textContent = "Date:" + " " + dateInput.value;
  43.  
  44.             // Create 3 buttons with class names
  45.             let saveBtn = document.createElement('button');
  46.             saveBtn.classList.add('save-btn');
  47.             saveBtn.textContent = 'Save song';
  48.  
  49.             let likeBtn = document.createElement('button');
  50.             likeBtn.classList.add('like-btn');
  51.             likeBtn.textContent = 'Like song';
  52.  
  53.             let delBtn = document.createElement('button');
  54.             delBtn.classList.add('delete-btn');
  55.             delBtn.textContent = 'Delete';
  56.  
  57.             // ADD all info to the div and then div to the main container
  58.             newDiv.appendChild(img);
  59.             newDiv.appendChild(genreH2);
  60.             newDiv.appendChild(nameH2);
  61.             newDiv.appendChild(authorH2);
  62.             newDiv.appendChild(dateH3);
  63.             // ADD buttons
  64.             newDiv.appendChild(saveBtn);
  65.             newDiv.appendChild(likeBtn);
  66.             newDiv.appendChild(delBtn);
  67.  
  68.             allHitsContainer.appendChild(newDiv);
  69.             // Clear input fields
  70.             genreInput.value = '';
  71.             nameInput.value = '';
  72.             authorInput.value = '';
  73.             dateInput.value = '';
  74.  
  75.             likeBtn.addEventListener('click', function (event) {
  76.                 event.preventDefault();
  77.                 totalLikes++;
  78.                 likes.textContent = `Total Likes: ${totalLikes}`
  79.                 likeBtn.disabled = true;
  80.  
  81.             })
  82.  
  83.             saveBtn.addEventListener('click', function (event) {
  84.                 event.preventDefault();
  85.                 savedContainer.appendChild(newDiv);
  86.                 newDiv.removeChild(saveBtn);
  87.                 newDiv.removeChild(likeBtn);
  88.             })
  89.  
  90.             delBtn.addEventListener('click', function (event) {
  91.                 event.preventDefault();
  92.                 // event.currentTarget.parentNode.remove();
  93.                 delBtn.parentElement.remove();
  94.             })
  95.         } else {
  96.             // console.log('pass');
  97.             event.preventDefault();
  98.         }
  99.  
  100.  
  101.     }
  102.  
  103.     );
  104.  
  105.  
  106.  
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement