API de formularios web

Carga del formulario

Antes de utilizar los métodos del objeto amo_forms_params, es necesario asegurarse de que el formulario se haya cargado correctamente y de que los métodos estén disponibles. Esto se puede hacer utilizando el método amo_forms_loaded, el cual acepta una función callback que se ejecuta una vez que el formulario ha sido inicializado.

Si se pasa el ID del formulario como segundo argumento, el callback solo se ejecutará para ese formulario específico, lo cual es útil si hay varios formularios en la página. La función callback recibe un objeto con la propiedad form_id, lo que permite identificar qué formulario fue cargado.

ParámetroTipoDescripción
callbackfunctionFunción callback
id (opcional)stringID numérico del formulario
amo_forms_loaded(function (params) {
  console.log(params);
  if (params.form_id === 123456) {
    amo_forms_params.resizeForm('amoforms_iframe_123456');
  }
});

Métodos del formulario

Para interactuar con los formularios añadidos en la página, existe un objeto global llamado amo_forms_params, el cual tiene disponibles los siguientes métodos:

Redimensionamiento forzado del formulario

El método amo_forms_params.resizeForm(id) recalcula la altura del formulario según la altura de su contenido. Esto es útil si el iframe está oculto cuando la página se carga (por ejemplo, dentro de una ventana modal), lo que impide que su altura se calcule correctamente. Al llamar manualmente a este método cuando se abre la ventana modal, el formulario se vuelve a renderizar correctamente.

ParámetroTipoDescripción
idstringID del elemento del formulario
amo_forms_params.resizeForm('amoforms_iframe_123456');

Suscribirse al envío del formulario

El método amo_forms_params.onFormSubmit(callback, id) añade un callback para el envío del formulario. Acepta un segundo argumento opcional: el ID del formulario. Si se omite, el callback se ejecutará cuando se envíe cualquier formulario de amoCRM presente en la página (puede haber varios formularios). El callback recibe como argumento un objeto con las propiedades form_id y status. La primera contiene el ID numérico del formulario, mientras que la segunda puede ser success o fail, dependiendo de si el envío fue exitoso o si ocurrió un error.

ParámetroTipoDescripción
callbackfunctionFunción callback
id (optional)intID numérico del formulario
amo_forms_params.onFormSubmit(function (params) {
  console.log(params); // { form_id: 1234, status: 'success' }
}, 123456);