- 34
- 0
问题描述
在vue框架内使用ant-design组件,页面内有一个表单,设定的表单规则比较简单,就是必填。但是即使什么都不输入,直接提交也可以输入内容也可以新增或修改成功。也就是表单的校验规则没有生效。
问题出现的环境背景及自己尝试过哪些方法
我猜测this.form.validateFields会自动处理错误情况,然后这项任务可能是比较底层的依赖去做的,ant-design文档页提到了async-validator,于是手动安装了async-validator,但是没有一点帮助。
相关代码
// 只列举一个表单项,其他的规则都是必填。
<a-form :form="form" @submit="handleSubmit" layout="vertical">
<a-form-item
label="标题"
:labelCol="formItemLayout.labelCol"
:wrapperCol="formItemLayout.wrapperCol">
<a-input
v-decorator="[
'title',
{initialValue: formData.title, rules: [{ required: true, message: '请输入标题' }]}
]"
placeholder="标题" />
</a-form-item>
</a-form>
// 提交
async handleSubmit (e) {
event.preventDefault()
this.form.validateFields((err, values) => {
if (!err) {
Object.assign(this.formData, values)
Object.assign(this.formData, { updatedAt: Date.now() })
console.log('提交信息成功', this.formData)
}
})
if (this.formData.id) {
const res = await updateBanner(this.formData)
console.log('编辑', res)
} else {
const res = await createBanner(this.formData)
console.log('新增', res)
}
},
你期待的结果是什么?实际看到的错误信息又是什么?
我期待的结果是,当表单不满足规则时,无法提交表单(流程中止),并且有相对应的文字提示(显示反馈)。
目前,交互上的表现是错误表单项出现红色小字的提示,前端浏览器控制台中出现async-validator的警告,类似于"title is required"。但是表单还是可以正常提交至数据库的。也就是说this.form.validateFields并没有阻止提交错误表单的流程。
0
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 10 元积分
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
