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

196
Vistas
sessionStorage en el envío del formulario

Estoy creando un formulario y el atributo onsubmit tiene un método booleano de validación de formulario. Al final del método, no importa si ninguna de las entradas inválidas ha devuelto false o no, la variable sessionStorage debe actualizarse a true para que, al cargar la página nuevamente, la variable se vuelva a verificar. ¿Por qué la variable sigue siendo false si ninguna de las entradas devolvió false o no? Tenga en cuenta que el atributo de action de formulario conduce a la misma página (página de formulario). Así es como se ve mi validación:

 <form action="form.jsp" onsubmit="return validate()"> <input type="text" id="foo" /> <input type="submit"> </form>
 var input = document.getElementById("foo"); // textbox function validate() { if (input.value.trim() === "") { return false; } sessionStorage.setItem("submitted","true"); }

Tenga en cuenta que todas las entradas de formulario existen y la variable sessionStorage no se actualiza incluso después de que la función no devuelva false .

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

0

Intente envolver la llamada sessionStorage en un intento/captura para ver por qué está fallando.

 function validate() { var input = document.getElementById("foo"); // textbox console.log('validate', input); if (input.value.trim() === "") { return false; } try { sessionStorage.setItem("submitted", "true"); } catch (e) { console.log(e); return false; } // (for demostration purposes return false) return false; }
 <form onsubmit="return validate()"> <input type="text" id="foo" /> <input type=submit> </form>

Como alternativa, puede utilizar la casilla de verificación "Conservar registro" en DevTools para conservar los errores de la consola.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Mirando su código jsfiddle , la razón es porque está verificando su valor de esta manera:

 if (sessionStorage.getItem("submitted") == true)

Esto no es exacto ya que los datos almacenados allí son una cadena... así que para arreglar esto puedes hacer:

 if (sessionStorage.getItem("submitted") == 'true')

En realidad , ni siquiera puedes verificarlo así:

 if (sessionStorage.getItem("submitted"))

Porque eso devolverá true para cualquier valor no nulo, incluso 'false' .

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