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

Vuelidate: Make field optional based on other checkbox (should apply to custom validations as well)

如何在 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

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

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

我编辑了你的jsfiddle