在寻求帮助之前,我查看了Vee验证的文档,我对使用带参数的自定义规则有疑问。实际上,我的规则配置很好,但是我找不到正确的语法来使它在带有参数的组件中正常工作。
我应该在相关字段的v-validate
功能中写些什么?
感谢您的帮助,
这是我的规则:
import { Validator } from 'vee-validate';
Validator.extend('isBigger', (value, [otherValue]) => {
return value <= otherValue;
}, {
hasTarget: true
});
我尝试了这个但没有用:
<b-form-input ref="bottom"
name="sampling depth bottom"
v-validate="{regex: /^-?\d+[.,]?\d{0,10}$/}"
placeholder="(in cm)"
v-model="inputSamplingDepthBot"
></b-form-input>
<b-form-input
name="sampling depth top"
v-validate="{isBigger:'bottom', regex: /^-?\d+[.,]?\d{0,10}$/}"
placeholder="(in cm)"
v-model="inputSamplingDepthTop"
></b-form-input>
答案 0 :(得分:1)
无需将整个东西都用大括号括起来。试试看:
<b-form-input
name="sampling depth top"
v-validate="'isBigger:bottom, regex: /^-?\d+[.,]?\d{0,10}$/'"
placeholder="(in cm)"
v-model="inputSamplingDepthTop"
></b-form-input>
规则名称和参数都应作为字符串传递。
如果出于某种原因需要为参数传递变量,则可以使用反引号对变量进行插值,如下所示:
<b-form-input
name="sampling depth top"
v-validate="`isBigger:${someVariable}, regex: /^-?\d+[.,]?\d{0,10}$/`"
placeholder="(in cm)"
v-model="inputSamplingDepthTop"
></b-form-input>