【发布时间】:2020-07-22 05:43:09
【问题描述】:
我为我的应用制作了以下可重复使用的输入组件,其中我添加了 vee-validate 以进行验证。
Input.vue
<input
:type="type"
v-on="$listeners"
:value="value"
:class="errors.first(name) ? 'input mt-2 is-danger' : 'input mt-2'"
@input="$emit('update', $event.target.value)"
:placeholder="placeholder"
v-validate="rules"
:name="name"
/>
<span class="has-text-danger-dark">{{ errors.first(name) }}</span>
<script>
export default {
inheritAttrs: false,
props: ["label", "placeholder","name", "rules", "value", "type"],
model: {
prop: "value",
event: "update",
},
};
</script>
我使用这个组件如下:
<Input
placeholder="(912) 555-4321"
v-model.lazy="basics.phone"
label="Phone"
type="tel"
slot="field"
name="phone"
rules="{required: true, regex: ^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$}"
/>
发送上述参数后,我在输入字段电话上收到错误消息:
[vee-validate] 不存在这样的验证器“{required”。
我已经将该组件用于具有验证规则的其他输入,并且它可以工作。但使用正则表达式则不然。
<Input
placeholder="john@gmail.com"
v-model.lazy="basics.email"
label="Email"
type="email"
slot="field"
name="email"
rules="required|email"
/>
【问题讨论】:
标签: javascript vue.js vuejs2 vee-validate