antd-vue在Modal组件中使用form组件

215 字
1 分钟
antd-vue在Modal组件中使用form组件

步骤#

  1. modal中添加form,这里modal的visible属性和form的v-if绑定同一个值,给定form的ref值
<a-form
:form="form"
v-if="addVisible"
ref="getForm"
>
  1. data中初始化form
form: this.$form.createForm(this)
formItemLayout: {
labelCol: { span: 8 },
wrapperCol: { span: 10 },
}
  1. 补充form表单,比如校验等
<a-form-item
v-bind="formItemLayout"
label="密码"
>
<a-input
type="password"
v-decorator="[
'password',
{
rules: [{
required: true, message: '请输入密码',
}, {
validator: validateToNextPassword,
}]
}
]"
/>
</a-form-item>
validateToNextPassword (rule, value, callback) {
let pattern = /^[a-zA-Z][a-zA-Z0-9_]*$/
if(value) {
if (!pattern.test(value)) {
callback(new Error('字母数字下划线组成'))
} else {
callback()
}
} else {
callback()
}
}
  1. modal点击ok事件,通过refs来获取form对象
const form = this.$refs.getForm.form // 通过refs属性可以获得对话框内form对象
form.validateFields((err, values) => {
if(!err){
this.addVisible = false
}
})
  1. 如果需要修改 使用setFields来全部设置,或者使用setFieldValue单个设置
setTimeout(()=>{
this.form.setFields({
'realname': { value: record.realname},
'username':{ value: record.username},
'password':{ value: record.password},
'email':{ value: record.email},
'phone':{ value: record.phone},
})
},0)
antd-vue在Modal组件中使用form组件
https://wangxiang.website/posts/前端框架/antd-form/
作者
翔子
发布于
2020-08-17
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
翔子
前端开发工程师
公告
博客已从 VitePress 迁移到 Astro + Firefly 主题,223 篇文章全部保留。
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
221
分类
9
标签
28
总字数
411,914
运行时长
0
最后活动
0 天前

文章目录