Scripting de formularios¶
Los formularios aceptan JavaScript: el control javascript guarda código que se ejecuta en el navegador con el formulario. Esta página lista a qué puede acceder ese código.
Encontrar un control¶
| Función | Encuentra un control por |
|---|---|
getFieldById(id) |
El atributo id |
getFieldByName(name) |
El nombre del control |
getFieldByVariable(variable) |
La variable del caso a la que está asociado |
getFieldByAttribute(attribute, value) |
Cualquier atributo |
getFormById(id) |
El formulario |
getSubformById(id) |
Un subformulario |
getFieldByVariable es la que conviene usar cuando el código debe sobrevivir a un
renombrado del control: la variable es la parte estable.
Un objeto de campo expone la propiedad value, y una casilla expone checked.
Reaccionar a lo que hace el usuario¶
leimnud.event.add(getFieldByName('country'), 'change', function () {
// se ejecuta cuando cambia el país
});
El evento que necesitas depende del control:
| Control | Evento que se dispara al cambiar el valor |
|---|---|
| text, textarea, currency, percentage | blur — cuando el usuario sale del campo |
| checkbox | click |
| dropdown, radiogroup, listbox, date | change |
Un blur no se dispara mientras el usuario sigue escribiendo, y es la razón habitual de
que un cálculo "no se actualice" hasta que el usuario hace clic en otro lado.
Mostrar y ocultar¶
Las reglas de mostrar/ocultar condicionales usan estos ayudantes, y tu código puede llamarlos:
showRowById(id)yhideRowById(id)— un control.showRowsById([...])yhideRowsById([...])— varios a la vez.
Ocultar un control no borra su valor: queda oculto, no eliminado.
Archivos externos¶
El código que comparten varios formularios puede vivir en un archivo público del proceso y ser incluido desde el formulario. Así hay una sola copia de la lógica en lugar de una por formulario.
Reglas que importan¶
- El código corre en el navegador, así que un usuario puede saltearlo. Lo que debe cumplirse se verifica otra vez en un desencadenador.
- Un error en el script detiene el resto del script; el formulario sigue funcionando, pero el comportamiento esperado no ocurre.
- El script ve el formulario, no el servidor: no puede consultar la base de datos directamente. Usa un control con conexión de base de datos, o un desencadenador.
- La depuración es la consola del navegador, no la vista de depuración del caso. Esa vista muestra el lado del servidor.
Relacionado¶
- Controles — los controles que manipula el script.
- Condiciones — la alternativa declarativa al scripting.
- Desencadenadores — dónde va la lógica del servidor.