antd Form組件表單在vue3中的使用方式
antd Form組件表單在vue3使用
antd Form表單組件有個最需要注意的問題,
官方文檔里寫的很清楚

這是什么意思,我們下面說個例子就明白了:
<template>
<a-form
ref="formRef"
:model="formState"
:rules="rules"
:label-col="labelCol"
:wrapper-col="wrapperCol"
>
<a-form-item ref="username" name="username">
<label>Username:</label>
<a-input v-model:value="formState.username" />
</a-form-item>
<a-form-item :wrapper-col="{ span: 14, offset: 4 }">
<a-button type="primary" @click="onSubmit">Create</a-button>
<a-button style="margin-left: 10px" @click="resetForm">Reset</a-button>
</a-form-item>
</a-form>
</template>

這里<a-form-item>的標(biāo)簽name屬性需要和表單對象formState里面的字段username對應(yīng)上,包含在標(biāo)簽里面的<a-input>標(biāo)簽的v-model:value綁定formState.username
這里a-form-item里面的name屬性是用來給rules驗證規(guī)則對應(yīng)使用的

import { defineComponent, reactive, ref, toRaw } from "vue"
export default defineComponent({
setup() {
const formState = reactive({
name: "",
username: '',
password: '',
password2: '',
code: ''
})
const rules = {
username: [
{ required: true, message: "請輸入用戶名", trigger: "blur" },
{ min: 3, max: 5, message: "Length should be 3 to 5", trigger: "blur" }
]
}
return {
labelCol: {
span: 4,
},
wrapperCol: {
span: 14,
},
formState,
rules
}
}
})
表單數(shù)據(jù)存在formState里面

驗證規(guī)則存在rules里面

最后別忘了返回:

效果:
當(dāng)失去焦點的時候,會提示用戶

輸入字符長度不在3-5之間的話,也會提示:

但是如果這樣寫,就不會有錯誤提示了:

效果:
失去焦點以后,并不會提示:

這就是官方文檔里面提到的,<a-form-item>只會監(jiān)聽第一個子元素的變化

如果我們調(diào)換一下位置:

又可以提示了:

如果非要把label放在輸入框上面,又不想影響提示功能,怎么辦??
<a-form-item>上面套一個div不就完事了:

效果:

當(dāng)然最方便的就是默認(rèn)的樣式,直接在<a-form-item>標(biāo)簽里面配置label屬性就可以了:

效果:

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue2響應(yīng)式系統(tǒng)之set和delete
這篇文章主要介紹了Vue2響應(yīng)式系統(tǒng)之set和delete,通過為對象收集依賴,將對象、數(shù)組的修改、刪除也變成響應(yīng)式的了,同時為用戶提供了和方法,下文詳細(xì)介紹需要的朋友可以參考一下2022-04-04
從Vuex中取出數(shù)組賦值給新的數(shù)組,新數(shù)組push時報錯的解決方法
今天小編就為大家分享一篇從Vuex中取出數(shù)組賦值給新的數(shù)組,新數(shù)組push時報錯的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09
Vue ElementUI this.$confirm async await封
這篇文章主要介紹了Vue ElementUI this.$confirm async await封裝方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09
vue通過watch對input做字?jǐn)?shù)限定的方法
本篇文章主要介紹了vue通過watch對input做字?jǐn)?shù)限定的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07
基于vue-cli3+typescript的tsx開發(fā)模板搭建過程分享
這篇文章主要介紹了搭建基于vue-cli3+typescript的tsx開發(fā)模板,本文通過實例代碼截圖的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02

