Proponuje rozwiązanie z tablicą, przy większej ilości słów pisanie kolejnych if-ów może sprawić problem (dodałem różne warianty odpowiedzi)
.
[ demonstracja on-line ]
<DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<title>Reakcja</title>
<link rel="stylesheet" href="staleon.css">
</head>
<body>
<form>
<input type="text" id="textbox">
<button type="submit">Wyślij</button>
<div id="replybox"></div>
</form>
<script src="istant.js"></script>
</body>
</html>
const dictionary = [
{ 'text':'hej', 'reply': [ 'Witam', 'Dzień dobry', 'Jak się masz!' ] },
{ 'text':'pa', 'reply': [ 'Do widzenia', 'Do zobaczenia', 'Żegnam!' ] },
{ 'text':'lol', 'reply': [] }
];
const form = document.querySelector('form');
form.addEventListener('submit', check);
function check(e) {
e.preventDefault();
const text = form.querySelector('#textbox').value.trim(),
replybox = form.querySelector('#replybox');
const found = dictionary.find(entry => entry.text.toLowerCase() === text.toLowerCase());
if (found) {
replybox.textContent = getRandomReply(found.reply);
} else {
replybox.textContent = 'Brak odpowiedzi dla podanego słowa.';
}
}
function getRandomReply(reply) {
try {
return reply[Math.floor(Math.random() * reply.length)];
} catch (error) {
console.error(error);
return '';
}
}