VGFormSender
API и настройка
Параметры, методы, события, формат ответа и публичные CSS-переменные.
Ошибки в Blade-компонентах
При серверном рендере alert добавляет состояние is-error, а helperFooter выводит сообщение в form-footer. Для AJAX тот же DOM-контракт можно заполнить в afterValidateError или afterError.
<x-inputs.email
name="email"
title="Email"
:value="old('email')"
:alert="$errors->has('email') ? 'is-error' : null"
:helper-footer="$errors->first('email')"
required
/>
Параметры
Параметры передаются вторым аргументом VGFormSender.init(). Вложенные значения также читаются из data-атрибутов через дефисы, например data-alert-type=toast.
| Параметр | По умолчанию | Назначение |
|---|---|---|
validate | false | Запускает checkValidity() и добавляет классы needs-validation / was-validated. |
submit | false | true оставляет нативную отправку браузера; false использует AJAX. |
fields | [] | Дополнительные пары ключ/значение для FormData. Массивы и объекты сериализуются в JSON. |
alert.enabled / type / delay | true / modal / 0 | Включение, режим modal|collapse|toast и задержка автозакрытия. |
response.enabled | false | Подменяет response статическим объектом response из конфигурации. |
redirect.success / error | '' / '' | Перенаправление вместо стандартной обработки результата. |
button.enabled / disabled | true / true | Меняет текст и блокирует submit-кнопку во время запроса. |
button.spinner.enabled | false | Добавляет spinner-border в кнопку до завершения. |
pass.focus / template | false / pass-open | Настройка управляющей иконки у password-полей. |
lang | ru | Язык встроенных сообщений об HTTP-ошибках. |
Callbacks и методы
init() создаёт или переиспользует экземпляр и вызывает build(). Экземпляр также доступен через getInstance() / getOrCreateInstance(); request(event, formData) запускает отправку, alert(data, status) — выбранное уведомление.
| Callback | Когда вызывается |
|---|---|
afterInit(form, instance) | После build() и подготовки полей. |
afterValidateError(form, instance, event, errors) | После провала HTML5-валидации, до запроса. |
afterSend(form, instance, status, data) | После любого завершённого AJAX-запроса. |
afterSuccess(form, instance, event, data) | После успешного ответа, если нет success redirect. |
afterError(form, instance, event, data) | После ошибочного ответа, если нет error redirect. |
DOM-события
События отправляются на форме и подходят для слабосвязанных интеграций: аналитики, внешнего busy-state и обновления соседних компонентов.
| Событие | Момент | Данные |
|---|---|---|
vg.fs.before | Перед beforeSend и AJAX-запросом. | detail.vgformsender.self |
vg.fs.success | После стандартной успешной обработки. | event, self, data |
vg.fs.error | После стандартной обработки ошибки. | event, self, data |
Формат ответа
Успешный HTTP-ответ попадает в success, неуспешный — в error. Для стандартного уведомления сервер возвращает title, message и errors; альтернативно response.view может содержать готовый HTML.
{
"errors": false,
"title": "Данные отправлены",
"message": "Форма принята"
}
CSS-переменные
Переменные задаются на .vg-form-sender или более узком классе экземпляра. Статусные цвета alert получают значения из темы VGApp.
| Переменная | Назначение |
|---|---|
--vg-form-sender-eye-color | Цвет иконки показа пароля. |
--vg-form-sender-alert-background-color | Фон modal/collapse-уведомления. |
--vg-form-sender-alert-border-color | Цвет рамки уведомления. |
--vg-form-sender-alert-color | Цвет текста уведомления. |
--vg-form-sender-alert-icon | Цвет статусной иконки. |
--vg-form-sender-alert-close | Цвет кнопки закрытия. |