
Экземпляр класса FetchIt
Доступ: FetchIt.instances.get(formElement). В событиях экземпляр лежит в e.detail.fetchit.
Типы методов для TypeScript: fetchit.d.ts.
Свойства:
| Свойство | Описание |
|---|---|
form | HTMLFormElement |
config | Конфиг из FetchIt.create(): actionUrl, pageId, классы, clearFieldsOnSuccess, защита. Общий у всех форм одного вызова сниппета |
formData | Данные текущей или последней отправки; undefined до первой |
fields | Элементы input, select и textarea формы |
elements | Все элементы формы |
clearErrors()
Снимает ошибки со всех полей.
document.addEventListener('fetchit:after', (e) => {
e.detail.fetchit.clearErrors()
})clearError(name)
Очищает ошибки одного поля. Возвращает { fields, errors, customErrors }.
const { fields, errors, customErrors } = fetchit.clearError('password')setError(name, message)
Помечает поле невалидным: классы, aria-invalid, текст в [data-error]. Сообщение проходит через sanitizeHTML. Пустая/пробельная строка игнорируется.
document.addEventListener('fetchit:before', (e) => {
const { formData, fetchit } = e.detail
if (!formData.get('email')) {
fetchit.setError('email', 'Укажите email')
e.preventDefault()
}
})Важно!
Валидация на стороне клиента небезопасна и должна быть реализована только для удобства пользователя.
setFormMessage(type, message)
Показывает сообщение уровня формы.
type:'success'→[data-success], иначе →[data-validation-error]- парный блок скрывается
fetchit.setFormMessage('success', 'Готово')
fetchit.setFormMessage('validation', 'Проверьте поля')clearFormMessages()
Скрывает и очищает [data-success] и [data-validation-error].
disableFields() / enableFields()
На время запроса скрипт сам вызывает disable / enable. Можно вызвать вручную. Поля, отключённые в разметке, после отправки остаются отключёнными.
getFields(name)
Массив полей с name или name[].
getErrors(name)
Элементы [data-error="name"] и [data-error="name[]"].
getCustomErrors(name)
Элементы [data-custom="name"].
