diff --git a/src/App.vue b/src/App.vue index 2795940..e05ca87 100644 --- a/src/App.vue +++ b/src/App.vue @@ -97,6 +97,7 @@ const onClose = () => { :min="0" :max="100" :step="1" + required /> diff --git a/src/components/fields/VFileField.vue b/src/components/fields/VFileField.vue index 3df1d0d..55eed6d 100644 --- a/src/components/fields/VFileField.vue +++ b/src/components/fields/VFileField.vue @@ -4,6 +4,7 @@ import VField from './VField.vue' defineProps<{ label: string accept?: string + required?: boolean }>() const modelValue = defineModel({ required: true }) @@ -20,6 +21,7 @@ const onChange = (e: Event) => { :class="modelValue ? 'text-text-normal' : 'italic text-text-disabled'" type="file" :accept + :required @change="onChange" /> diff --git a/src/components/fields/VNumberField.vue b/src/components/fields/VNumberField.vue index 609d3da..739fcb6 100644 --- a/src/components/fields/VNumberField.vue +++ b/src/components/fields/VNumberField.vue @@ -7,6 +7,7 @@ defineProps<{ min?: number max?: number step?: number + required?: boolean }>() const modelValue = defineModel({ required: true }) @@ -22,6 +23,7 @@ const modelValue = defineModel({ required: true }) :min :max :step + :required /> diff --git a/src/components/fields/VSelectField.vue b/src/components/fields/VSelectField.vue index c5bffff..17f4d03 100644 --- a/src/components/fields/VSelectField.vue +++ b/src/components/fields/VSelectField.vue @@ -4,6 +4,7 @@ import VField from './VField.vue' defineProps<{ label: string options: Record + required?: boolean }>() const modelValue = defineModel({ required: true }) @@ -14,6 +15,7 @@ const modelValue = defineModel({ required: true })