HTML:
<!DOCTYPE html>
<html>
<head>
<title>Random Answer Generator</title>
<link rel="stylesheet" type="text/css" href="styles.css">
</head>
<body>
<h1>Random Answer Generator</h1>
<input type="text" id="question" placeholder="Enter your question">
<button id="generateBtn">Generate Answer</button>
<div id="message"></div>
<script src="script.js"></script>
</body>
</html>
CSS (styles.css):
body {
font-family: Arial, sans-serif;
text-align: center;
}
h1 {
color: #333;
}
input[type="text"] {
padding: 8px;
margin-top: 10px;
font-size: 16px;
}
button {
padding: 10px 20px;
margin-top: 10px;
background-color: #007bff;
color: #fff;
border: none;
cursor: pointer;
}
button:hover {
background-color: #0056b3;
}
#message {
margin-top: 20px;
font-size: 18px;
color: #333;
}
JavaScript (script.js):
const question = document.getElementById("question");
const generateBtn = document.getElementById("generateBtn");
const message = document.getElementById("message");
const answerArray = [
"Yes",
"No",
"Maybe",
"I'm not sure",
"Ask again later"
];
generateBtn.addEventListener("click", function() {
console.log(question.value);
if (question.value === "") {
alert("Please enter a question!");
return; // Exit the function if the question is empty
}
// For random answer
let res = Math.floor(Math.random() * answerArray.length);
console.log(answerArray[res]);
// Output display with answer
if (question.value.trim() !== "") {
message.innerHTML = question.value + " " + answerArray[res];
} else {
message.innerHTML = answerArray[res];
}
question.value = "";
});
Make sure to save the HTML code in an HTML file (e.g., index.html
), the CSS code in a CSS file (e.g., styles.css
), and the JavaScript code in a JavaScript file (e.g., script.js
). Link the CSS file in the <head>
section of your HTML file using the <link>
tag, and include the JavaScript file at the end of the <body>
section using the <script>
tag.
With this setup, the JavaScript code will listen for a click event on the “Generate Answer” button, and when clicked, it will generate a random answer based on the input question and display it in the message
div. If the question field is empty, it will display an alert asking the user to enter a question.

HTML:
- The HTML code sets up the basic structure of the page. It includes a
<h1>
heading for the title, an<input>
field for the user to enter their question, a<button>
with the id “generateBtn” to trigger the event, and a<div>
with the id “message” to display the generated answer.
CSS (styles.css):
- The CSS code provides some basic styling for the elements in the HTML. It sets the font family to Arial, aligns the text in the center, and defines the styles for the input field, button, and message div.
JavaScript (script.js):
- The JavaScript code starts by obtaining references to the necessary HTML elements using the
document.getElementById()
method. - The
answerArray
variable is an array that contains a list of possible answers. - The
generateBtn
button element is assigned an event listener using theaddEventListener()
method. It listens for a “click” event and triggers the provided callback function when the button is clicked. - Inside the event listener callback function, the code first logs the value of the
question
input field to the console. - It then checks if the value of the
question
input field is an empty string. If it is, an alert is displayed, informing the user to enter a question, and the function returns early, preventing the rest of the code from executing. - Next, a random number between 0 and the length of the
answerArray
is generated usingMath.random()
andMath.floor()
. This random number is used as an index to select a random answer from theanswerArray
. - The selected answer is logged to the console.
- The code then checks if the trimmed value of the
question
input field (without leading and trailing spaces) is not an empty string. If it’s not empty, it sets theinnerHTML
of themessage
div to the concatenation of the question value, a space, and the randomly selected answer. - If the question field is empty or contains only spaces, it sets the
innerHTML
of themessage
div to just the randomly selected answer. - Finally, it clears the value of the
question
input field by setting it to an empty string.
That’s a detailed explanation of the provided code. It sets up the necessary HTML structure, applies basic CSS styling, and defines JavaScript logic to handle the button click event, generate a random answer based on the entered question, and display it on the page.