Vue.js中使用Yup、Vuelidate校验Checkbox无法强制勾选的问题求助
解决Vuelidate结合Yup校验Checkbox必须勾选的问题
你当前使用的Yup.boolean().required()校验逻辑存在问题:required()仅校验字段是否存在,但布尔值false本身属于合法的存在值,所以即使Checkbox未勾选(绑定值为false),校验依然会通过。
要强制Checkbox必须勾选(值为true),需要改用oneOf([true])来限定有效值只能是true,同时可以结合自定义错误提示或已设置的label信息:
rizaOnayi: Yup.boolean() .oneOf([true], `${Yup.ref('rizaOnayi').label} 必须勾选`) .label("Açık Rıza Onayi"),
或者更直接地指定错误文本:
rizaOnayi: Yup.boolean() .oneOf([true], "必须勾选Açık Rıza Onayi") .label("Açık Rıza Onayi"),
修改后,当rizaOnayi的值为false时,Yup会触发错误提示,Vuelidate会拦截表单提交并展示对应的错误信息,确保用户必须勾选该Checkbox才能提交表单。
内容的提问来源于stack exchange,提问作者kadirklc
相关产品推荐
相关产品推荐

