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

96
Vistas
HTML div no desaparece después de eliminar la entrada

Básicamente, lo que estoy tratando de hacer es mostrar condicionalmente una sección de un formulario. Si un campo de entrada no tiene nada o 0 como entrada, la sección está oculta. De lo contrario, quiero que se muestre la sección. Si bien la sección aparece cuando ingreso números en el campo correcto, no desaparece después de eliminar la entrada.

Hasta ahora, he intentado cambiar el detector de eventos para escuchar la variable busmiles después de moverla fuera de la función, pero eso hace que la sección nunca se muestre. Tampoco estoy seguro de qué está causando este problema, ya que no tengo mucha experiencia en javascript.

archivo HTML

 <label for="weeklybus">On average, how many miles do you take the bus/train in a week?</label><br> <input name="weeklybus" id="weeklybus" type="number" required> <br id="oppositeform"> <div id="busmodeform"> <p>Do you typically take the bus, light rail, or heavy rail?</p> <input name="busmode" id="bus" type="radio" value="bus"> <label for="bus">Bus</label><br> <input name="busmode" id="light" type="radio" value="light"> <label for="light">Light rail</label><br> <input name="busmode" id="heavy" type="radio" value="heavy"> <label for="heavy">Heavy rail</label><br> </div>

JavaScript

 function showFormSection() { var busmiles = document.getElementById('weeklybus').value; const busmode = document.getElementById('busmodeform'); const extralinebreak = document.getElementById('oppositeform'); if (busmiles != "" && busmiles != "0") { busmode.style.display = 'block'; extralinebreak.style.display = 'hidden'; } else if (busmiles == "") { busmode.style.display = 'hidden'; extralinebreak.style.display = 'block'; } } window.addEventListener('input', showFormSection);

EDITAR: Corregido. Cambiado de oculto --> ninguno.

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

0

No ha declarado un atributo "style=" en su elemento DIV. También el estilo DIV debe tener una propiedad establecida para "visibilidad".

 <script> // goes in head function hideDiv(){ document.getElementById("busmodeform").style.visibility="hidden"; } </script> <div id="busmodeform" onblur="hideDiv();" style="visibility:visible;">
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