如何使用 VeeValidate 验证来自 BootstrapVue 表单的输入?
Posted
技术标签:
【中文标题】如何使用 VeeValidate 验证来自 BootstrapVue 表单的输入?【英文标题】:How to validate input from BootstrapVue form with VeeValidate? 【发布时间】:2020-04-10 23:17:45 【问题描述】:我有一个使用 BootstrapVue 构建的表单。为了验证表单输入,我遇到了 VeeValidate。
选择输入是较长表单的一部分,目前如下所示:
<form action="">
...
<b-form-select size="sm" v-model="selected" class="mb-2 form-group">
<option :value="null" disabled>Payments per Year</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="4">4</option>
<option value="6">6</option>
<option value="12">12</option>
</b-form-select>
...
</form>
我想验证此输入并在页面加载时显示验证错误,以向用户指示他需要进行选择输入(“1..2..4..6..12”)。 “每年付款”占位符应显示无效。
阅读 VeeValidate 文档时,它说我需要一个单独的组件。示例:
<ValidationProvider rules="even" v-slot=" errors ">
<input v-model="value" type="number" placeholder="type something">
<span> errors[0] </span>
</ValidationProvider>
但我已经在 BootstrapVue 组件中使用了选择输入。我应该如何从这里继续前进?
我可以以某种方式合并这两个组件吗?
感谢您的见解和帮助!
【问题讨论】:
【参考方案1】:您必须将要验证的每个 input
包装在 <ValidationProvider
中,就像您的代码中的以下内容一样:
<ValidationProvider rules="even" v-slot=" errors ">
<b-form-select size="sm" v-model="selected" class="mb-2 form-group">
<option :value="null" disabled>Payments per Year</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="4">4</option>
<option value="6">6</option>
<option value="12">12</option>
</b-form-select>
<span> errors[0] </span>
</ValidationProvider>
如果你想稍后使用<ValidationObserver>
,你必须把它包裹在你所有的<ValidationProvider>
标签上。
【讨论】:
非常感谢@Jesper 为我指明了正确的方向!你知道这个控制台日志可能意味着什么吗? "Error: No such validator 'even' exists
"
不客气,记得把答案标记为正确,如果它对你有足够的帮助以上是关于如何使用 VeeValidate 验证来自 BootstrapVue 表单的输入?的主要内容,如果未能解决你的问题,请参考以下文章
即使使用密钥,VeeValidate 也会验证不存在的字段错误