Работа с ошибками
Обработка ошибок
Используя ValidationField
Для работы с ошибками в данных дефолтного слота присутствуют поля errors
, firstError
, invalid
, setError
для работы с ошибками
TIP
Подробное описание и тип данных можно посмотреть тут
<template>
<validation-field name="firstName">
<template #default="{ modelValue, onChange, errors, invalid, setError }">
<div>
<input
:value="modelValue"
type="text"
@input="onChange($event.target.value)"
>
<template v-if="invalid">
<span
v-for="(error, index) in errors"
:key="index"
>
{{ error.message }}
</span>
</template>
<button
type="button"
@click="setError({ message: 'custom error message' })"
>
set custom error
</button>
</div>
</template>
</validation-field>
</template>
Используя ValidationProvider
Для работы с ошибками в данных дефолтного слота присутствуют поля errors
, invalid
, setError
для работы с ошибками
TIP
Подробное описание и тип данных можно посмотреть тут
<template>
<validation-provider>
<template #default="{ errors, invalid, setError }">
<div>
<div>{{ invalid }}</div>
<div>{{ errors }}</div>
<button
type="button"
@click="setError('fieldName', { message: 'custom error message' })"
>
set custom error
</button>
</div>
</template>
</validation-provider>
</template>
Используя ValidationErrors
Для работы с ошибками в данных дефолтного слота присутствуют поля errors
, submitted
для работы с ошибками
TIP
Подробное описание и тип данных можно посмотреть тут
<template>
<validation-errors name="firstName">
<template #default="{ errors, submitted }">
<div>
<div>{{ submitted }}</div>
<div>{{ errors }}</div>
</div>
</template>
</validation-errors>
</template>
Входной параметр name
является не обязательным и может быть опущен, тогда будут возвращены все ошибки формы
WARNING
Ошибки устанавливаемые через setError
сбрасываются при изменении поля или при отправке формы
Установка серверных ошибок
После прохождения клиентской валидации выкидывается событие submit
и в него приходят, помимо values
, дополнительные методы. Один из них setError
с помощью, которого можно так же установить ошибки, после выполнения какой-либо логики.
TIP
Подробнее о всех параметрах события submit
можно ознакомится тут
<template>
<validation-provider @submit="onSubmit">
//...
</validation-provider>
</template>
<script>
export default {
methods: {
onSubmit(values, { setError }) {
formApi.send(values).catch((error) => {
setError('firstName', { message: error, type: 'custom' });
})
}
}
}
</script>
Ошибки по-умолчанию
ValidationProvider
поддерживает передачу ошибок по-умолчанию через параметр defaultErrors
TIP
При наличии ошибок по-умолчанию переводит ValidationProvider
в вариант со параметром instantValidate
, то есть отображает ошибки сразу же без необходимости отправлять форму
Типы ошибок
Ошибки представляют собой следующий формат
Как видно из типа ошибки, помимо message
может быть передан type
ошибки. Поле type
используется только для ваших личных целей, вы можете устанавливать любое нужное для вас значение. Типы могут быть использованы для какой-то логики группирования или отображения ошибок