Home > front end >  Display second prompt if the first prompt is not TRUE
Display second prompt if the first prompt is not TRUE

Time:02-12

I have a problem when i try to display new prompt, i use loop but it will display both my prompt. Here is my code and i really need help

<body>
<p id="age" style="font-weight: bold"></p>
<button onclick=" notify()">Try it</button>
<script>
function notify(){
var age = document.getElementById("age").value;
var age = prompt("Enter Your birth year:");// This is the first prompt 
const year = new Date().getFullYear();
if (age != null) { 
          document.getElementById("age").innerHTML =
            "Your "   age   " is so beautiful"; // If user enter birth year < current year will display this
        }
  do {
     age = prompt("Re-enter your birth year:"); // Ortherwise, this will display and they need to enter until birth year < current year
    } while (age > year && age != null);
        var tuoi = year - age;// This is just calculate user'age, for example if the user enter 2000 will display user'age is 22
        document.getElementById("age").innerHTML =
          "Tuổi "   tuoi   " này đẹp đó";
}
</script>
</body>

CodePudding user response:

your code has several issues and does some things which do not make total sense to me, but I think you want something like this:

<body>
  <p id="age" style="font-weight: bold"></p>
  <button onclick=" notify()">Try it</button>
  <script>
    function notify() {
      const year = new Date().getFullYear();
      var birth_year = parseInt(prompt("Enter Your birth year:")); // This is the first prompt
      
      if (!isNaN(birth_year) && birth_year < year) {
        document.getElementById("age").innerHTML =
          "Your "   birth_year   " is so beautiful"; // If user enter birth year < current year will display this
      } else {
        do {
          birth_year = parseInt(prompt("Enter Your birth year:")); // Ortherwise, this will display and they need to enter until birth year < current year
        } while (isNaN(parseInt(birth_year)) || birth_year >= year);
        var tuoi = year - age; // This is just calculate user'age, for example if the user enter 2000 will display user'age is 22
        document.getElementById("age").innerHTML =
          "Tuổi "   birth_year   " này đẹp đó";
      }
    }

  </script>
</body>

CodePudding user response:

You simply forgot a part of your if condition.

Change if (age != null) to if (age != null && age < year) and it will work as you expect it. Don't forget the case if age == year.

  • Related