1# llimphi-widget-form
2
3*Read this in English: [README.md](README.md).*
4
5Validación de formularios sobre `llimphi-widget-field`.
6
7Un formulario valida en tres tiempos, y el que se hace mal es el tercero:
8
91. **qué se pide** — las reglas por campo (`Regla`, `CampoDef`);
102. **qué está mal** — la agregación (`Formulario::validar` → `Errores`), que
11 junta **todos** los problemas y no sólo el primero;
123. **cuándo se dice** — `EstadoForm`. Un formulario que grita «obligatorio»
13 contra un campo vacío que todavía no tocaste es hostil, y uno que se guarda
14 el error hasta el submit te hace ir y volver. La regla: se muestra al
15 **salir** del campo (`tocar`) o al **intentar enviar** (`enviar`), nunca
16 mientras se escribe por primera vez.
17
18Es lógica pura más dos vistas de pegamento. Los valores siguen viviendo en el
19`Model` del caller: acá no hay un `Form` con buffers adentro, porque eso
20obligaría a sincronizar dos fuentes de verdad.
21
22`campo_view` saca del formulario la etiqueta, el asterisco de obligatorio y el
23error, así esos tres datos dejan de escribirse dos veces —que es como terminan
24diciendo cosas distintas—. `resumen_errores_view` arma el resumen navegable de
25la cabecera: en un formulario largo el error puede estar fuera de pantalla, y lo
26único que se ve es que el botón no hizo nada.
27
28---
29
30Parte de **llimphi** — ver [llimphi](../../LEEME.md).
LEEME.md
llimphi-widget-form
Read this in English: README.md.
Validación de formularios sobre llimphi-widget-field.
Un formulario valida en tres tiempos, y el que se hace mal es el tercero:
- qué se pide — las reglas por campo (
Regla, CampoDef);
- qué está mal — la agregación (
Formulario::validar → Errores), que
junta todos los problemas y no sólo el primero;
- cuándo se dice —
EstadoForm. Un formulario que grita «obligatorio»
contra un campo vacío que todavía no tocaste es hostil, y uno que se guarda
el error hasta el submit te hace ir y volver. La regla: se muestra al
salir del campo (tocar) o al intentar enviar (enviar), nunca
mientras se escribe por primera vez.
Es lógica pura más dos vistas de pegamento. Los valores siguen viviendo en el
Model del caller: acá no hay un Form con buffers adentro, porque eso
obligaría a sincronizar dos fuentes de verdad.
campo_view saca del formulario la etiqueta, el asterisco de obligatorio y el
error, así esos tres datos dejan de escribirse dos veces —que es como terminan
diciendo cosas distintas—. resumen_errores_view arma el resumen navegable de
la cabecera: en un formulario largo el error puede estar fuera de pantalla, y lo
único que se ve es que el botón no hizo nada.
Parte de llimphi — ver llimphi.