My homepage prompts you to enter your name upon entry, but I want it to print a special message when i enter my nickname. Instead, it prints the same message every time.
window.onload = function namePrompt() {
let person = prompt("Please enter your name", "");
if (person != null) {
document.getElementById("name").innerHTML =
"welcome, " person ", to the pyrogaming/covid2009 homepage!";
}
else if (person = pyro || Pyro || PYRO) {
document.getElementById("name").innerHTML =
"hey, me! hope you've been making substantial changes!";
}
}
CodePudding user response:
person = pyro || Pyro || PYRO
is not valid JS
There are three errors. =
is assignment, not comparison and you would need quotes and test each one with ===
person === "pyro" || person ==="Pyro" || person === "PYRO"
Instead use toLowerCase and a ternary. In any case stay DRY (Don't Repeat Yourself)
I also recommend eventListener instead of onl oad
window.addEventListener("DOMContentLoaded", () => {
const person = prompt("Please enter your name", "");
if (!person) return;
const text = person.toLowerCase() === "pyro" ?
"hey, me! hope you've been making substantial changes!" :
`welcome, ${person}, to the pyrogaming/covid2009 homepage!`;
document.getElementById("name").innerHTML = text;
})
<span id="name"></span>
CodePudding user response:
window.onload = function namePrompt() {
let person = prompt("Please enter your name", "");
var msg
if (person != null) {
if (person.toLowerCase() == "pyro") {
msg =
"hey, me! hope you've been making substantial changes!";
} else {
msg = "welcome, " person ", to the pyrogaming/covid2009 homepage!";
}
document.getElementById("name").innerHTML = msg
}
}
<div id="name"></div>
CodePudding user response:
- You need to first check the name if it's yours and after that display the default message
- When comparing, use
===
, not=
- this one is "assign value", not comparing - Use string values instead of just
PYRO
- I'd also suggest to use
toLowerCase
method, so you don't need to worry about input case. "Pyro", "PYRO", "pyro" - they all will be the same for comparison
window.onload = function namePrompt() {
let person = prompt("Please enter your name", "");
if (person != null) {
if(person.toLowerCase() === 'pyro') {
document.getElementById("name").innerHTML =
"hey, me! hope you've been making substantial changes!";
} else {
document.getElementById("name").innerHTML =
"welcome, " person ", to the pyrogaming/covid2009 homepage!";
}
}
}
<div id="name"></div>