Vee 验证:带有参数的 isBetween 自定义规则不起作用
Vee validate: isBetween custom rule with parameters not working
验证,我正在尝试为我的文本字段创建多个规则,例如:required、minlength、maxLength 并将它们链接在一起,并根据哪个参数传递给预成型验证
所以我尝试使用文档中的示例:
http://vee-validate.logaretm.com/v2/guide/custom-rules.html#args-and-rule-configuration
const isBetween = (value, { min, max } = {}) => {
return Number(min) <= value && Number(max) >= value;
};
// The first param is called 'min', and the second is called 'max'.
const paramNames = ['min', 'max'];
Validator.extend('between', isBetween, {
paramNames // pass it in the extend options.
});
我的 Vue 模型如下所示:
<ValidationProvider
v-if="item && item.type === 'TEXT_AREA'"
:rules="`isBetween:true, 10`"
v-slot="{ errors, valid, validate }"
>
<b-form-textarea
size="sm"
:id="`attribute`"
:value="attributeValue"
@input="addAttributeValue($event, uid, validate)"
/>
<span>{{ displayError(errors) }}</span>
</ValidationProvider>
这里我尝试传入 IsBeterrn 参数,例如:必需、长度并基于此进行验证,但我总是将最小值和最大值设为 null,并且参数是数组而不是对象
我的第二个问题是如何在自定义规则中使用 vee-validate 中的 required
您有两种指定参数的方法,使用字符串或使用对象。我建议你使用这样的对象方法:
<ValidationProvider
:rules="{between:[0, 10]}"
>
您犯了一些错误 - 规则被称为 between
因为您在执行此操作时就是这样称呼它的:
Validator.extend('between', isBetween, {
paramNames // pass it in the extend options.
});
此外,您不能像此处那样使用布尔值和数字作为参数:
:rules="`isBetween:true, 10`"
我指定的方式,:rules="{between:[0, 10]}"
还允许您根据需要创建最小和最大变量,即如果您有一个名为 minValue
的组件数据项,您可以在这样的规则 :rules="{between:[minValue, 10]}"
并且您的规则将对 minValue
.
的更改做出反应
验证,我正在尝试为我的文本字段创建多个规则,例如:required、minlength、maxLength 并将它们链接在一起,并根据哪个参数传递给预成型验证
所以我尝试使用文档中的示例:
http://vee-validate.logaretm.com/v2/guide/custom-rules.html#args-and-rule-configuration
const isBetween = (value, { min, max } = {}) => {
return Number(min) <= value && Number(max) >= value;
};
// The first param is called 'min', and the second is called 'max'.
const paramNames = ['min', 'max'];
Validator.extend('between', isBetween, {
paramNames // pass it in the extend options.
});
我的 Vue 模型如下所示:
<ValidationProvider
v-if="item && item.type === 'TEXT_AREA'"
:rules="`isBetween:true, 10`"
v-slot="{ errors, valid, validate }"
>
<b-form-textarea
size="sm"
:id="`attribute`"
:value="attributeValue"
@input="addAttributeValue($event, uid, validate)"
/>
<span>{{ displayError(errors) }}</span>
</ValidationProvider>
这里我尝试传入 IsBeterrn 参数,例如:必需、长度并基于此进行验证,但我总是将最小值和最大值设为 null,并且参数是数组而不是对象
我的第二个问题是如何在自定义规则中使用 vee-validate 中的 required
您有两种指定参数的方法,使用字符串或使用对象。我建议你使用这样的对象方法:
<ValidationProvider
:rules="{between:[0, 10]}"
>
您犯了一些错误 - 规则被称为 between
因为您在执行此操作时就是这样称呼它的:
Validator.extend('between', isBetween, {
paramNames // pass it in the extend options.
});
此外,您不能像此处那样使用布尔值和数字作为参数:
:rules="`isBetween:true, 10`"
我指定的方式,:rules="{between:[0, 10]}"
还允许您根据需要创建最小和最大变量,即如果您有一个名为 minValue
的组件数据项,您可以在这样的规则 :rules="{between:[minValue, 10]}"
并且您的规则将对 minValue
.