¿Cuál es la mejor manera de repoblar un formulario y mostrar errores con no-script?

StackOverflow https://stackoverflow.com/questions/1003132

  •  05-07-2019
  •  | 
  •  

Pregunta

Estoy creando una aplicación que utiliza llamadas ajax para validaciones de formularios y algunas otras, el problema es que no me gusta cuando esos errores de validación aparecen en una nueva página sin css y el formulario se restablece por completo sin los javascripts.

Estoy hablando de una docena de formularios, por lo que será muy molesto para el usuario revisar los formularios una y otra vez.

He leído algunas respuestas sobre este tema, pero ¿hay alguna manera específica, una mejor práctica para una situación como esta (más en la línea de validación de formularios)?

Disculpas si ya hay una respuesta.

Editar:

Todas las validaciones se realizan en el lado del servidor, actualmente los errores se muestran con la ayuda de ajax. Lo que me gustaría es un método conveniente para rellenar el formulario y mostrar errores sin javascript si ocurre un error al procesar el formulario.

¿Fue útil?

Solución

No estoy seguro de que con su pregunta esté implicando que no valida en el servidor, esto se consideraría un gran agujero de seguridad ya que, obviamente, las formas podrían omitirse simplemente deshabilitando Javascript. Debe validar en el servidor cada vez, mientras que la validación del lado del cliente es sencilla de hacer.

Además, el " problema " el hecho de que los formularios se reinicien a sí mismos cuando la página se vuelve a cargar se vuelve discutible cuando se utiliza un marco decente: en Python, Django auto-rellena los formularios en caso de errores. En PHP, CakePHP y CodeIgniter también lo hacen, y estoy seguro de que la mayoría de los frameworks hacen esto, ya que cae dentro de la categoría de "tareas comunes" que se supone que los marcos se abstraen.

Cuando no estoy usando un marco, escribo mi propia pequeña clase de Formulario que satisface la necesidad.

EDITAR :

No conozco nada de lo que pueda agregar a lo que debe poder rellenar el formulario. Tu mejor apuesta es escribir tu propia pequeña clase para ello, que no debería tomar más de 1 hora.

Otros consejos

Lo que normalmente hago es almacenar todas las cadenas de error en una matriz en una variable de sesión (yo uso PHP). Si hay un error en el lado del servidor, redirija al usuario a la página de formulario, verifique la var de la sesión y muestre los errores según corresponda. Asegúrese de desactivar la var de sesión para liberar memoria después de mostrarla. Lo mismo ocurre con la repoblación de los valores de formulario en una sesión var.

La validación del formulario se debe escribir primero en el servidor, luego en el cliente. Debes estar validando en el servidor en cualquier caso. No confíe en Ajax para algo tan simple y crucial para el funcionamiento de su sitio como la validación de formularios. Usando secuencias de comandos discretas, puede evitar el envío predeterminado del formulario y luego procesar el formulario usando Ajax. De lo contrario, permita que se envíe y responda con una página de validación generada por el servidor.

Realice sus validaciones en el lado del servidor y vuelva a llenar los formularios.

La validación a través de AJAX es agradable , pero no se puede aplicar. Por lo tanto, es más efectivo hacer que las validaciones se realicen ya sea que ocurra o no el AJAX. Sugeriría una segunda ruta que pueda manejar las validaciones y devolver una serie de errores en JSON para aquellos que tienen JavaScript. Pero para aquellos sin javascript, la única forma en que funcionarán sus validaciones es a través del servidor.

Desafortunadamente, no tienes una opción en esto. Cualquier programador o pirata informático medio decente con Firebug puede editar su javascript, separar los ganchos y sortear todo lo que está tratando de hacer de su lado: ser paranoico y aplicar la validación en el servidor.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top