Aprenda a usar componentes personalizados para crear campos que requieran una lógica o una interfaz de usuario específicas con JavaScript, HTML y CSS.
Con el campo personalizado, puede ampliar la apariencia y la funcionalidad de sus formularios, y añadir una lógica potente con JavaScript, HTML y CSS.El campo personalizado incluye métodos internos para facilitar el envío de datos al formulario, añadir validaciones de frontend y backend, y gestionar eventos comunes como focus o blur.Puede usar el campo personalizado para crear:
Campos con una estructura de datos personalizada.
Ejemplo: Objetos, matrices de cadenas
Campos que usan widgets de terceros.
Ejemplo: Autocompletado de direcciones de Google
Campos con lógica para ocultar o mostrar otros campos.
Campos que requieren API externas para obtener un valor.
Para usar campos personalizados, debe habilitar dominios personalizados. Si renderiza un formulario con un campo personalizado fuera de un dominio personalizado, se mostrará un error.
Agregue pares clave-valor para hacer referencia a ellos en el código fuente del campo personalizado. Los pares clave-valor pueden incluir variables de campos del formulario.
Los valores de los parámetros solo están disponibles después de que el formulario llame al método init().
Ejemplo:En el ejemplo siguiente, la configuración de parámetros del campo personalizado se rellena con los pares clave-valor symbol={{fields.symbol}} y separator=,
function CustomComponent(context) { const input = document.createElement('input'); let mask = null; function mountComponent() { /** El método getParams() devuelve los parámetros que configuraste en tu input */ const config = context.custom.getParams(); const { symbol, separator } = config; mask = IMask(input, { mask: `${symbol}num`, blocks: { num: { mask: Number, thousandsSeparator: separator, } } }); } return { /** Se invoca una vez cuando se crea el campo */ init() { mountComponent(); return input; }, ... };}
De forma predeterminada, el campo personalizado acepta cualquier formato de valor. Sin embargo, puedes usar JSON Schema para validar los valores en el servidor.
Se invoca una sola vez cuando se crea el campo y recibe los valores de params que configuras en la sección parámetro.Devuelve un elemento HTML, una cadena o ningún valor.Ejemplo:
Se invoca cuando el usuario vuelve a visitar el mismo paso del formulario.Esta opción es útil cuando necesita volver a renderizar la lógica de la interfaz de usuario o actualizar los valores de los parámetros que podrían haber cambiado.
Se invoca cuando el formulario necesita obtener el valor del campo personalizado una o varias veces. Por lo general, esto ocurre cuando el usuario envía ese paso del formulario. Si necesita realizar validaciones del lado del cliente, puede generar un error para mostrar un mensaje de error personalizado al usuario.Ejemplo:
function customTextInput() { const input = document.createElement('input'); input.type = 'text'; return { init() { return input; }, getValue() { if (input.value !== 'Auth0') { throw new Error('The value must be Auth0') } return input.value; } };}
Se invoca cuando el campo personalizado debe bloquearse. Normalmente se ejecuta cuando el usuario envía ese paso del formulario y los datos se están procesando en nuestro backend.
Se invoca cuando se debe desbloquear el campo personalizado. Normalmente se ejecuta después de que el usuario envía ese paso del formulario o de que los datos dejan de procesarse en nuestro back-end debido a un error de validación.
Cuando necesites interactuar con el formulario para obtener valores de otros campos o ir a otros pasos del formulario, puedes usar los siguientes métodos del formulario:
getNode() | true Devuelve el elemento HTML raíz del campo.
getValue() Devuelve el valor del campo.
setRequired(boolean) Marca o desmarca el campo como obligatorio.
Parámetro
Descripción
id
*String *. El valor del campo id.
Ejemplo:
const fullName = context.form.getField('full_name');const fullNameValue = fullName.getValue();console.log(fullNameValue); // John Doe
setRequired() solo marca o desmarca el campo como obligatorio en el cliente. Por ejemplo, si desmarca un campo como obligatorio, pero está marcado como obligatorio en la configuración del campo, el formulario devolverá un error si el campo no tiene ningún valor.