首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vee-validate仅验证某些字段

Vee-validate仅验证某些字段
EN

Stack Overflow用户
提问于 2018-10-25 18:11:03
回答 2查看 1.3K关注 0票数 0

我在一个表单中有多个输入,通过vee-validate验证,它工作得很好,但我只想检查事件上的一些字段。所以在看到关于这个https://github.com/baianat/vee-validate/issues/1089的一个问题后,我写了这个函数:

代码语言:javascript
复制
       async checkInputs(){
            let inputs = ['input1', 'input2', 'input3', 'input4'];
            const results = Promise.all(
                inputs.map(input => {
                    if(this.$validator.validate(input) === true)
                        null;
                    else
                        dictionary.custom[input].required();
                })
            );

            return (await results).filter(element => element != null);
        }

其思想是获得一个包含失败字段的错误消息的数组。注意,我使用了一些console.log来确保当输入检查失败时,它会返回错误消息。但是当我使用它的时候:

代码语言:javascript
复制
           this.checkInputs().then(function(results) {
                console.log(results);
            });

我只有一个包含4个未定义值的数组,而不是包含4个字符串的错误消息数组。

EN

回答 2

Stack Overflow用户

发布于 2019-03-31 21:44:43

你试过$nextTick吗?

代码语言:javascript
复制
  this.$nextTick(function() {
        this.checkInputs().then(function(results) {
            console.log(results);
        });
    });
票数 2
EN

Stack Overflow用户

发布于 2019-10-14 02:55:54

Array.map()应该返回值,this.$validator.validate(input)返回值也应该是promise,所以你可以这样写:

代码语言:javascript
复制
inputs.map(async input => {
   if(await this.$validator.validate(input) === true)
     return null;
   else
     return dictionary.custom[input].required();
   })
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52986745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档