Skip to content

useValidation >=2.7.0 ​

Used to validate a field against validators defined in a field's schema

Usage ​

Vue
<script setup>
import { toRefs } from 'vue'
import { 
  useValidation, 
  useFieldProps,
  useFormModel,
  useFieldEmits,
  useFieldAttributes
} from '@kevinkosterr/vue3-form-generator'

const props = defineProps(useFieldProps())
const emits = defineEmits(useFieldEmits())

const { field, model } = toRefs(props)
const { isRequired, isDisabled, isReadonly } = useFieldAttributes(model.value, field.value)
const { currentModelValue } = useFormModel(model.value, field.value)
  
const { validate, errors, onChanged, onBlur } = useValidation(
    model.value,
    field.value,
    currentModelValue,
    props.formOptions,
    emits,
    isDisabled.value,
    isRequired.value,
    isReadonly.value
)
</script>
Vue
<script setup lang="ts">
import { toRefs } from 'vue'
import { 
  type FieldEmits, 
  type FieldProps, 
  type FieldBase,
  type FieldPropRefs,
  useValidation,
  useFieldAttributes,
  useFormModel
} from '@kevinkosterr/vue3-form-generator'

type CustomField = FieldBase & {
  customAttr: string
}

const props = defineProps<FieldProps<CustomField>>()
const emits = defineEmits<FieldEmits>()
  
const { field, model }: FieldPropRefs<CustomField> = toRefs(props)
const { isRequired, isDisabled, isReadonly } = useFieldAttributes(model.value, field.value)
const { currentModelValue } = useFormModel(model.value, field.value)

const { validate, errors, onChanged, onBlur } = useValidation(
    model.value,
    field.value,
    currentModelValue,
    props.formOptions,
    emits,
    isDisabled.value,
    isRequired.value,
    isReadonly.value
)
</script>

Arguments ​

model Object ​

Model object, as returned by the props

field Object ​

Field schema object, as returned by the props

currentModelValue Ref<any> ​

Ref of the current value from the field. Returned by useFormModel.

formOptions Object ​

Form options object, as returned by the props.

emits EmitFn<FieldEmits> ​

Emit function as returned by defineEmits()

isDisabled Boolean ​

Whether the field is disabled, can be obtained from useFieldAttributes()

isRequired Boolean ​

Whether the field is required, can be obtained from useFieldAttributes()

isReadonly Boolean ​

Whether the field is readonly, can be obtained from useFieldAttributes()

Returns ​

errors string[] ​

An array of errors for the current field. Will be auto-updated on every validation cycle. Must be cleared manually when the value of a field has changed.

validate Function ​

A validation function, meant to be called when a validation has to take place. Used when a field is always validated at the same moment and isn't affected by validation triggers, such as 'onChanged' or 'onBlur'.

onChanged Function ​

A wrapped validation function, only validates when 'onChanged' validation is enabled. Should always be called if the value is changed, unless the field is unaffected by validation triggers.

onBlur Function ​

A wrapped validation function, only validates when 'onBlur' validation is enabled (which is the default behavior). Should always be called if the value is changed, unless the field is unaffected by validation triggers.