vue.js - 使用 Vee-Validate (Vuejs) 验证输入数组
问题描述
以下作品:
<li :key="index" v-for="(...) in items">
<input type="text" name="itemFields[]" v-validate="required">
</li>
// ...
<div class="vv-errors">
<ul>
// shows only for last active input
<li v-for="error in errors.collect('itemFields[]')">{{ error }}</li>
</ul>
</div>
如果我将某些输入设为空,则会显示一条错误消息。但是,如果我随后用文本填充其他一些空输入,则错误消息会完全消失。情况不应该如此,因为另一个输入仍然是空的。总而言之,错误消息仅考虑最后一个活动输入。
如果至少有一个输入为空,如何实现显示错误消息?
解决方案
实际上,您面临的问题是因为您的所有输入的名称字段都是相同的,并且应该是唯一的。因此,在使用 v-for 时,您可以执行以下操作:
<div v-for="i in 5" >
<input type="text" :name="'email'+i" placeholder="Email" v-validate="'required|email'">
<span class="error" v-if="errors.has('email'+i)">{{errors.first('email'+i)}}
</span>
</div>
这是解决您的问题的基本示例。
推荐阅读
- java - 预期为 BEGIN_ARRAY,但在第 1 行第 2 列路径 $
- java - Java中ListenableFuture的默认执行器是什么?
- javascript - 如何通过匹配所有值而不是一个值来过滤对象数组
- javascript - 将列表子项传递给父项
- asp.net-mvc - 如何在asp.net核心的一个解决方案中定义的2个项目中定义(控制器/方法)的路由?
- javascript - 在 localStorage 中存储用户 API 密钥的最佳实践
- android - 如何在下面的 android webview api 19 中使用 chrome DevTools?
- ionic-framework - Ionic 3 如何修复离子幻灯片的第一张幻灯片,其中应该显示规格和用户在报价之间滑动以进行比较?
- javascript - Javascript ES6 - 是否可以在子类中不使用 this 关键字的情况下使用/调用超类属性或函数
- xamarin - 使用 Xamarin.Forms MessagingCenter 在 ViewModel 和方法之间进行通信有什么优点或缺点吗