Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

282
Views
Solicitar al usuario que vuelva a ingresar el año de nacimiento hasta el año de nacimiento < año actual

Tengo el problema de cómo seguir mostrando un aviso hasta que el usuario ingrese su año de nacimiento siempre es más pequeño que el año actual. Aquí está mi código. Intento usar loop pero ahora lucho. Espero que alguien me pueda ayudar, se lo agradezco.

 <body> <p id= "age"></p> <button onclick=" notify()">Try it</button> <script> function notify(){ let age = prompt("Your birth year"); const year = new Date().getFullYear(); do { document.getElementById("age").innerHTML = age + " is a good year"; } while (age < year && age != null); } </script> </body>
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Podrías usar la recursividad:

 <body> <p id="age"></p> <button onclick="notify()">Try it</button> <script> age_p = document.getElementById("age"); function notify() { let age = prompt("Your birth yeat"); const year = new Date().getFullYear(); if (parseInt(age) < year) { age_p.innerHTML = age + " is a good year"; } else { notify(); } } </script> </body>

about 4 years ago · Juan Pablo Isaza Report

0

Dos cosas a comprobar:

  1. la prueba de "si la edad es mayor o igual al año actual continúa en bucle" parece estar en el camino equivocado. Pruebe >= en lugar de < como operador de comparación edad/año.

  2. Asegúrese de prompt nuevamente si el año ingresado es inaceptable.

Muestre el fragmento para ver una versión funcional:

 function notify(){ let age; const year = new Date().getFullYear(); do { age = prompt("Your birth year"); } while (age >= year && age != null); document.getElementById("age").innerHTML = age + " is a good year"; }
 <p id= "age"></p> <button onclick=" notify()">Try it</button>

about 4 years ago · Juan Pablo Isaza Report

0

Esta solución sugerida modifica considerablemente su código para tratar de mejorar tanto la UX como la capacidad de mantenimiento.

  • Un cuadro de diálogo modal prompt es fácil de configurar para nosotros, pero tiende a ser complicado para el usuario. (Un elemento de input , en este caso uno numérico, suele ser la mejor manera de obtener la entrada del usuario).
  • Los controladores de eventos en línea violan el SoC y son menos flexibles que los detectores de eventos adecuados .

(Aquí también hay cambios de estilo, pero estos son solo preferencias personales y pueden ignorarse con seguridad).

(Consulte los comentarios en el código para obtener más aclaraciones).

 // Gets current year, and identifies some DOM elements const year = new Date().getFullYear(), yearInput = document.getElementById("year-input"), outputParagraph = document.getElementById("output-paragraph"), submitButton = document.getElementById("submit-button"); // Calls notify whenever button is clicked submitButton.addEventListener("click", notify); // Alternative listener setup you could try -- makes button unnecessary // yearInput.addEventListener("change", notify); // Chooses and shows message (by comparing inputted year to current year) function notify(){ const userYear = yearInput.value; let message; if(userYear === "") { message = ""; } else if(userYear > year){ message = "Greetings, time traveller"; } else { message = "You are fit for your age"; } outputParagraph.textContent = message; }
 input{ width: 8ch; }
 <label> Your birth year <input id="year-input" type="number" /> </label> <button id="submit-button">SUBMIT</button> <p id="output-paragraph"></p>

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!