Vuelidate:根据其他复选框使字段可选(也应适用于自定义验证)

Posted

技术标签:

【中文标题】Vuelidate:根据其他复选框使字段可选(也应适用于自定义验证)【英文标题】:Vuelidate: Make field optional based on other checkbox (should apply to custom validations as well) 【发布时间】:2021-12-31 21:23:50 【问题描述】:

如何在 Vuelidate 中保持字段可选?

Vuelidate 在代码中给出$v。要检查表单验证,我们有 $invalid 道具 现在我如何根据复选框的东西保持 x 字段可选 例如。

[ ] use y field
[ y text field ] (right now optional)

但如果我选中复选框

[x] use y field
[ y text field ] (now its required and it will follow other validations such as sameAs/minLength/max/custom validation

PS:它还应该验证自定义验证。

我有这个jsfiddle 我想要的是,如果我选中 is universal 框,那么只有验证应该应用于输入框,否则验证应该被忽略,$invalid 应该是 false

【问题讨论】:

【参考方案1】:

您需要将validations 属性更改为函数,这将允许您使用this 访问状态。您还需要在自定义验证器中检查您的复选框值:

validations() 
  return 
    text: 
        required: requiredIf(function () 
        return this.isUniversal
      ),
      roblox (val) 
        return this.isUniversal ? !!val.match(/roblox.com/) : true
      
    
  
,

我编辑了你的jsfiddle

【讨论】:

非常感谢this 没有得到反应/正常工作。

以上是关于Vuelidate:根据其他复选框使字段可选(也应适用于自定义验证)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 vuelidate 中动态设置验证字段

Vuelidate复选框验证

根据发货国家/地区将 Woocommerce 结帐电话字段设为可选

Vuelidate 在点击操作时验证 bootstrapvue / vue 表单字段

Vuelidate sameAs 无法读取组件的数据

如果选中第一个复选框,则根据条件禁用其他复选框