Home > database >  Print one message for specific condition, different message for everything else
Print one message for specific condition, different message for everything else

Time:06-26

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:

  1. You need to first check the name if it's yours and after that display the default message
  2. When comparing, use ===, not = - this one is "assign value", not comparing
  3. Use string values instead of just PYRO
  4. 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>

  • Related