Ошибка содержится в вашей функции scrambler()
.Эта функция выполняется каждый раз, когда пользователь нажимает кнопку Convert
независимо от того, введен ввод в текстовую область.Это потому, что ваш слушатель событий просто прослушивает щелчки на этой кнопке Convert и для каждого щелчка он просто запускает функцию scrambler()
на основе указанного ввода.Вам необходимо добавить проверку проверки ввода, чтобы устранить эту проблему, поскольку она работает только на допустимом вводе.
Ваша кнопка конвертации Listerner:
convertText.addEventListener('click', function() {
if (checkbox_1.checked && checkbox_2.checked) {
console.log("Capitalizing + Scrambling text");
document.getElementById("convertedText").value = scrambler(capitalizer());
} else if (checkbox_2.checked) {
console.log("Scrambling text");
var text = document.getElementById("inputText").value;
document.getElementById("convertedText").value = scrambler(text);
} else if (checkbox_1.checked) {
console.log("Capitalizing text");
document.getElementById("convertedText").value = capitalizer();
}
})
Обратите внимание, что нет проверки входных данных в этом прослушивателе событий , и он принимает допустимое значение в вашей текстовой области convertedText
, поэтому вы получаете ошибку undefined
, когда пользователь не вводит ничего для преобразования, т. е. не существует преобразуемого текста для разделения
Uncaught TypeError: Невозможно прочитать свойство 'split' из неопределенного
Надеюсь, это поможет!