我有一个自定义veevalidate规则,可用来查看输入的值是否已经在该组件的数组中。我想在具有不同数组的不同组件中使用此规则。有没有办法做到这一点?这是我目前仅使用一个组件的规则
const isUnique = (value) => {
const reg = new RegExp(`^${value}$`, 'i');
const inputValue = this.myArray.filter(str => reg.test(str));
if (inputValue.length > 0) {
return {
valid: false,
data: {
message: `The ${inputValue} already exists.`,
},
};
}
return { valid: true };
};
Validator.extend('unique', {
validate: isUnique,
getMessage: (field, params, data) => data.message,
});
答案 0 :(得分:0)
您肯定可以-您可以使用记录在here中的名为oneOf
的现有规则,也可以更改规则以接受参数。看来您的规则不区分大小写,所以您可能要坚持这一点。您需要做的就是在isUnique
函数中接受第二个参数,然后使用它代替this.myArray
:
const isUnique = (value, values) => {
const reg = new RegExp(`^${value}$`, 'i');
const inputValue = values.filter(str => reg.test(str));
然后在您的模板中,将其命名为:
<ValidationProvider :rules="{isUnique:myArray}">