Saltar a contenido

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) y hideRowById(id) — un control.
  • showRowsById([...]) y hideRowsById([...]) — 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