VGFormSender

Отправка данных на сервер

API и настройка

Параметры, методы, события, формат ответа и публичные CSS-переменные.

Ошибки в Blade-компонентах

При серверном рендере alert добавляет состояние is-error, а helperFooter выводит сообщение в form-footer. Для AJAX тот же DOM-контракт можно заполнить в afterValidateError или afterError.

Blade
<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.

ПараметрПо умолчаниюНазначение
validatefalseЗапускает checkValidity() и добавляет классы needs-validation / was-validated.
submitfalsetrue оставляет нативную отправку браузера; false использует AJAX.
fields[]Дополнительные пары ключ/значение для FormData. Массивы и объекты сериализуются в JSON.
alert.enabled / type / delaytrue / modal / 0Включение, режим modal|collapse|toast и задержка автозакрытия.
response.enabledfalseПодменяет response статическим объектом response из конфигурации.
redirect.success / error'' / ''Перенаправление вместо стандартной обработки результата.
button.enabled / disabledtrue / trueМеняет текст и блокирует submit-кнопку во время запроса.
button.spinner.enabledfalseДобавляет spinner-border в кнопку до завершения.
pass.focus / templatefalse / pass-openНастройка управляющей иконки у password-полей.
langruЯзык встроенных сообщений об 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.

JSON
{
  "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Цвет кнопки закрытия.