表单项这样写的:
<a-form-model-item label="值班人员" prop="dutyUserIdList">
<a-select
mode="multiple"
@change="
(val, option) => {
selectChange(val, option)
}
"
v-model="dutyUserIdList"
optionFilterProp="label"
placeholder="请选择值班人员"
style="width: 100%"
>
<a-select-option v-for="(item, i) in userList" :key="i" :value="item.sysUserId" :label="item">
{{ item.userName }}
</a-select-option>
</a-select>
</a-form-model-item>
rules这样写的:
dutyUserIdList: [{ required: true, message: "请选择值班人员", trigger: ["change"], type: "array" }],
但是change后,有值也无法通过验证。
怎么解决这个问题,这个框架好多类似这样的问题。
找到问题了,是v-model的书写问题。应该写form.dutyUserIdList
。
在 ant-design-vue
中,对于 a-select
组件在多选模式下(mode="multiple"
),表单验证不通过的问题通常是由于验证规则中 trigger
的设置不正确或者组件的 v-model
绑定值类型不匹配导致的。
针对你的问题,可以尝试以下几个解决方案:
确保 v-model
绑定的值类型与验证规则中的 type
一致:
你的 v-model="dutyUserIdList"
绑定的应该是一个数组,验证规则中的 type: "array"
也是正确的。确保 dutyUserIdList
在数据初始化时就是一个数组,例如:
data() {
return {
dutyUserIdList: [], // 确保初始化为数组
userList: [...]
};
}
调整 trigger
触发方式:
对于 a-select
组件,在 mode="multiple"
时,验证触发可能需要调整为 'blur'
或 'change.blur'
,因为 change
事件在 a-select
中可能不会立即触发表单验证。尝试修改验证规则中的 trigger
:
rules: {
dutyUserIdList: [{ required: true, message: "请选择值班人员", trigger: "blur", type: "array" }]
}
或者如果你使用的是较新版本的 ant-design-vue
,可以尝试 'change.blur'
或 'change,blur'
(注意逗号分隔):
rules: {
dutyUserIdList: [{ required: true, message: "请选择值班人员", trigger: ["change", "blur"], type: "array" }]
}
selectChange
方法:selectChange
方法没有影响到 dutyUserIdList
的值,或者确保它正确地处理了数组类型的值。如果 selectChange
方法中有逻辑错误,可能会影响表单验证。ant-design-vue
版本:ant-design-vue
的某个已知问题导致的。查看官方文档或 GitHub Issues,看看是否有相关的修复或工作区。如果可能,尝试升级到最新版本。通过上述步骤,你应该能够解决 a-select
多选模式下表单验证不通过的问题。如果问题仍然存在,建议详细检查控制台是否有错误信息,或者提供更详细的代码和错误信息以便进一步分析。
版本问题,ant design vue1.7.8版本能用less4版本吗? 目前项目为less3版本,按需求升级到less4,报错的内容是ant design vue相关的
现在需要去除a-table的悬浮hover样式,找到了悬浮时的类.ant-table-cell-row-hover,并设置了 { background: none; } 但效果为什么是先闪烁下再消失
代码 页面展示 ant也安装了 点击按钮
vue-ant-design 动态增减表单,懒加载的级联选择器怎么做数据回显?
本文向大家介绍jquery 表单验证之通过 class验证表单不为空,包括了jquery 表单验证之通过 class验证表单不为空的使用技巧和注意事项,需要的朋友参考一下 在开发系统时,往往都有某些表单数据为必填项,若用jQuery通过ID去验证,不仅会影响效率,还会有所遗漏,不易于后期维护。 本章将介绍如何利用jQuery,通过为表单配置class进行统一验证。(ID一个页面只可以使用一次;cl
看起来肯定是ant-design的组件了, 它下面有个input的值,但是我修改Input的值,input的值变了。显示的值并不变,相关的验证也不会触发。 怎样用js来修改ant-select的值。。 原因是我要批量填表,测试一次要手动选20个select太痛苦了。用了一些表单工具都填不了这个select。
Ant Design Vue 如何修改 a-table 的 header ? 比如我希望可以实现鼠标悬停在某个列名上,可以跳出一个 a-tooltip 来提示一些内容 我知道列值可以通过 <template v-if="column.key === 'clip_source'"> 定制。但是我不知道怎么插槽到列头上? chatgpt 给了我下面的代码,用的是 <template v-slot:cu
vue3 Ant Design Vue 表单提交校验报错 是因为新版的Antd使用了React的hooks,表单中的字段校验方法进行了一些修改,原来的回调方法改成了返回一个Promise对象吗?