Ясно
Пробвай да имаш прожекциа, но да не са закупени билити т.е. при 0 продажби. Трябва да създадеш архив с 0,00 печалба. но такъв не се създава защото 0 === false и влизаш в return.
Трябват и още малко поправки:
1. Не проверявай за празен стринг
if (name === '' || hall === '' || ticketPrice === '') { |
return; |
} , а
if (name.length === 0 || hall.length === 0 || ticketPrice.length === 0) {
return;
};
2. Обръщаш към номер и проверяваш за трути стойност само че "0" === false и ако обърнеш стринг към номер получаваш NaN. В твоята проверка:
let ticketCount = Number(e.target.parentNode.querySelector(`input`).value); |
if (!ticketCount) { |
return; |
} - !NaN === true, както и !0 === true и ще отидеш в return.
За това проверката е по- добре да е:
let ticketCount = e.target.parentNode.querySelector(`input`).value;
if (isNaN(Number(ticketCount)) || ticketCount.length === 0) {
return;
}
ticketCount = Number(ticketCount) - взимаш проверяваш дали е номер или е празен стринг и след това кастваш към номер!
3.Това което не си видял също е в условието:
When you click the [Delete] button, you should delete the current list item. -> което е li-element. При твоя код -->
buttonDeleteElement.addEventListener(`click`, (e) => { |
e.preventDefault(); |
e.target.parentNode.parentNode.remove(); |
}); , което трие създаденият ul-element в който ти е <li>, а ти трябва да изтриеш само него, което в код е:
buttonDeleteElement.addEventListener(`click`, (e) => {
e.target.parentElement.remove();
});
4. Освен първият preventDefault() дрегите не са ти нужни, не че е грешка, но при <form> имаш поведение по подразбиране което трябва да превентираш.
Надявам се да съм ти помогнал?