georgiev955

01. Scary Story

Oct 14th, 2023
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.   //get references;
  3.   const firstNameEl = document.getElementById("first-name");
  4.   const lastNameEl = document.getElementById("last-name");
  5.   const ageEl = document.getElementById("age");
  6.   const storyTitleEl = document.getElementById("story-title");
  7.   const genreEl = document.getElementById("genre");
  8.   const storyEl = document.getElementById("story");
  9.   const publishBtn = document.getElementById("form-btn");
  10.   const previewListUl = document.getElementById("preview-list");
  11.  
  12.   publishBtn.addEventListener('click', publishStory);
  13.  
  14.   function publishStory(e) {
  15.     e.preventDefault;
  16.  
  17.     //take values;
  18.     const firstName = firstNameEl.value;
  19.     const lastName = lastNameEl.value;
  20.     const age = ageEl.value;
  21.     const storyTitle = storyTitleEl.value;
  22.     const genre = genreEl.value;
  23.     const story = storyEl.value;
  24.  
  25.     //validate input;
  26.     if (!firstName || !lastName || !age || !storyTitle || !story) {
  27.       return;
  28.     }
  29.  
  30.     //create elements;
  31.     const listElement = document.createElement('li');
  32.     const articleElement = document.createElement('article');
  33.     const h4Elemnt = document.createElement('h4');
  34.     const ageP = document.createElement('p');
  35.     const titleP = document.createElement('p');
  36.     const genreP = document.createElement('p');
  37.     const storyP = document.createElement('p');
  38.     const saveBtn = document.createElement('button');
  39.     const editBtn = document.createElement('button');
  40.     const deleteBtn = document.createElement('button');
  41.  
  42.     //add classes;
  43.     listElement.classList.add('story-info');
  44.     saveBtn.classList.add('save-btn');
  45.     editBtn.classList.add('edit-btn');
  46.     deleteBtn.classList.add('delete-btn');
  47.  
  48.     //add event listeners;
  49.     saveBtn.addEventListener('click', saveStory);
  50.     editBtn.addEventListener('click', editStory);
  51.     deleteBtn.addEventListener('click', deleteStory);
  52.  
  53.     //add text content;
  54.     h4Elemnt.textContent = `Name: ${firstName} ${lastName}`;
  55.     ageP.textContent = `Age: ${age}`;
  56.     titleP.textContent = `Title: ${storyTitle}`;
  57.     genreP.textContent = `Genre: ${genre}`;
  58.     storyP.textContent = `${story}`;
  59.     saveBtn.textContent = 'Save Story';
  60.     editBtn.textContent = 'Edit Story';
  61.     deleteBtn.textContent = 'Delete Story';
  62.  
  63.     //append elements
  64.     previewListUl.appendChild(listElement);
  65.     listElement.appendChild(articleElement);
  66.     listElement.appendChild(saveBtn);
  67.     listElement.appendChild(editBtn);
  68.     listElement.appendChild(deleteBtn);
  69.     articleElement.appendChild(h4Elemnt);
  70.     articleElement.appendChild(ageP);
  71.     articleElement.appendChild(titleP);
  72.     articleElement.appendChild(genreP);
  73.     articleElement.appendChild(storyP);
  74.  
  75.     //clear input and disable button;
  76.     firstNameEl.value = '';
  77.     lastNameEl.value = '';
  78.     ageEl.value = '';
  79.     storyTitleEl.value = '';
  80.     storyEl.value = '';
  81.  
  82.     publishBtn.disabled = true;
  83.  
  84.     function editStory() {
  85.       firstNameEl.value = firstName;
  86.       lastNameEl.value = lastName;
  87.       ageEl.value = age;
  88.       storyTitleEl.value = storyTitle;
  89.       storyEl.value = story;
  90.  
  91.       listElement.remove();
  92.       publishBtn.disabled = false;
  93.     }
  94.  
  95.     function saveStory() {
  96.       const mainDiv = document.getElementById("main");
  97.       mainDiv.innerHTML = '';
  98.  
  99.       const h1El = document.createElement('h1');
  100.       h1El.textContent = "Your scary story is saved!";
  101.  
  102.       mainDiv.appendChild(h1El);
  103.     }
  104.  
  105.     function deleteStory() {
  106.       listElement.remove();
  107.       publishBtn.disabled = false;
  108.     }
  109.   }
  110. }
Advertisement
Add Comment
Please, Sign In to add comment