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

317
Views
¿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 answers
Answer question

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 Report

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 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!