Skip to content
  1. Компоненты
  2. FetchIt
  3. JS API
  4. События

События

События вешаются на document. В detail почти всегда есть form и fetchit. При ответе сервера добавляются response и formData.

Примеры в разделах форм, уведомлений, модальных окон, валидации.

СобытиеCancelableКогда
fetchit:beforeдадо fetch, после сборки FormData
fetchit:afterдасразу после JSON-ответа, до разбора success/error
fetchit:successнетresponse.success === true
fetchit:errorдаresponse.success === false, до/во время показа полевых ошибок
fetchit:resetнетнативный reset формы

Порядок на submit: Message.beforefetchit:before → запрос → Message.afterfetchit:after → при ошибке Message.error + fetchit:error + setError / setFormMessage('validation') → при успехе setFormMessage('success') + Message.success + fetchit:successgrecaptcha.reset() если есть → опционально form.reset().

preventDefault на fetchit:after останавливает разбор success/error и полевые сообщения. У fetchit:success флаг cancelable не стоит. preventDefault на него не влияет.

fetchit:before

Добавить поля или остановить отправку:

js
document.addEventListener('fetchit:before', (e) => {
  const { formData, fetchit } = e.detail

  formData.set('utm_source', 'landing')

  if ((formData.get('name') || '').length < 3) {
    fetchit.setError('name', 'Слишком короткое имя')
    e.preventDefault()
  }
})

fetchit:after

Любой ответ сервера:

js
document.addEventListener('fetchit:after', (e) => {
  const { response } = e.detail
  console.log(response.success, response.message, response.data)
})

fetchit:success

Успешная отправка. Удобно закрыть модальное окно или отправить метрику:

js
document.addEventListener('fetchit:success', (e) => {
  const { form, response } = e.detail
  if (form.id === 'callback') {
    console.log(response.message)
  }
})

fetchit:error

Ошибка валидации или логики сниппета. В response.data лежит карта поле → сообщение.

js
document.addEventListener('fetchit:error', (e) => {
  const { response } = e.detail
  console.warn(response.data)
})

fetchit:reset

Сброс формы (кнопка reset или clearFieldsOnSuccess). Скрыть кастомный UI поверх стандартной очистки.