Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

316
Vistas
¿Es posible usar 2 avisos que soliciten datos a un usuario en JavaScript?

Quiero pedirle a un usuario tanto el nombre como una pregunta con un método prompt(), pero cuando intento agregar 2 métodos prompt(), uno para el nombre y otro para la pregunta, aparece este error: No se pueden establecer las propiedades de nulo (configurando 'innerHTML') al intentar generar eso.

Pero si elimino el indicador de nombre de usuario (), el código funciona perfectamente

 const userName = prompt("What is your name?", "Victor"); let userQuestion = prompt("Enter a question", "Can I sleep with my Boss?"); userName.length > 1 ? document.getElementById("8ball").innerHTML = "Hello " + userName + "!" : document.getElementById("8ball").innerHTML = "Hello!"; document.getElementById("ballQ").innerHTML = userName + " " + userQuestion;
 <div id="8ball"><p id="ballQ"></p> <div id="8BallResult"></div> </div>

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Dos problemas:

  1. La línea con el ternario sobrescribe el HTML interno de #8ball . Eso elimina #ballQ y #8BallResult del DOM, porque son hijos de ese nodo; luego obtiene un error cuando intenta escribir en #ballQ que ya no existe.

  2. prompt no siempre devuelve una cadena; si no hay entrada de usuario, devuelve null , y al intentar verificar la .length de null arrojará un error.

A continuación, reorganicé su HTML para evitar eliminar los nodos DOM que está tratando de mantener, y cambié la verificación de .length contra el nombre de usuario para que sea una simple verificación de veracidad (ya que todo lo que realmente está buscando es si el nombre existe).

También reorganicé las cosas para que el código fuera más fácil de leer: todas esas llamadas repetidas a document.getElementById estaban oscureciendo lo que estaba tratando de hacer.

 let userName = prompt("What is your name?", "Victor"); let userQuestion = prompt("Enter a question", "Can I sleep with my Boss?"); let nodeOne = document.getElementById("8ball"); let nodeTwo = document.getElementById("ballQ"); nodeOne.innerHTML = (userName) ? "Hello " + userName + "!" : "Hello!"; nodeTwo.innerHTML = userName + " " + userQuestion;
 <div id="8ball"></div> <p id="ballQ"></p> <div id="8BallResult"></div>

about 4 years ago · Juan Pablo Isaza Denunciar

0

TypeError: document.getElementById(...) es nulo

Al configurar el HTML interno de un elemento, que no existe, devolverá un valor nulo.

Básicamente, está configurando una propiedad de nulo, lo que le está dando el error.

Asegúrese de que su código venga después del elemento seleccionado.

Pruebe el siguiente código.

HTML
 <div id="8ball"> <p id="ballU"></p> <p id="ballQ"></p> <div id="8BallResult"></div> </div>
JavaScript
 const userEl = document.getElementById("ballU"); const questionEl = document.getElementById("ballQ"); const userName = prompt("What is your name?", "Victor"); const userQuestion = prompt("Enter a question", "Can I sleep with my Boss?"); userEl.innerHTML = userName ? Hello ${userName}!: Hello!; if (userQuestion) questionEl.innerHTML = ${userName} ${userQuestion};
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda