UIForm
UIForm
A form component with validation and submission handling.
<template> <UIForm ref="formRef" :model="formData" :rules="formRules" @submit="handleSubmit" > <UIFormItem label="Username" prop="username"> <UIInput v-model:value="formData.username" /> </UIFormItem>
<UIFormItem label="Email" prop="email"> <UIInput v-model:value="formData.email" type="email" /> </UIFormItem>
<UIFormItem> <UIButton type="primary" html-type="submit">Submit</UIButton> </UIFormItem> </UIForm></template>
<script setup lang="ts">interface FormData { username: string email: string}
const formRef = ref()const formData = ref<FormData>({ username: '', email: ''})
const formRules = { username: [ { required: true, message: 'Please enter username' } ], email: [ { required: true, message: 'Please enter email' }, { type: 'email', message: 'Please enter valid email' } ]}
const handleSubmit = async () => { try { await formRef.value.validate() console.log('Form submitted:', formData.value) } catch (errors) { console.error('Validation failed:', errors) }}</script>Props
model(object): Form data objectrules(object): Validation rules objectlabelWidth(number | string): Width of form labelslabelAlign(‘left’ | ‘right’): Alignment of form labelslabelPlacement(‘left’ | ‘top’): Placement of form labelssize(‘small’ | ‘medium’ | ‘large’): Form sizedisabled(boolean): Disable all form itemsshowFeedback(boolean): Show validation feedbackvalidateOnRuleChange(boolean): Validate when rules changeinline(boolean): Display form items inline
Events
submit: Emitted when form is submittedvalidate: Emitted after validationreset: Emitted when form is reset
Methods
validate(): Validate all form itemsvalidateField(prop: string): Validate specific form itemresetFields(): Reset all form itemsclearValidate(props?: string[]): Clear validation state
FormItem Props
label(string): Form item labelprop(string): Form item propertyrequired(boolean): Mark as requiredrules(array | object): Validation rulesshowMessage(boolean): Show validation messagevalidateStatus(‘success’ | ‘warning’ | ‘error’): Validation statushelp(string): Help message