Vuejs2 Vee validate返回始终为真

Vuejs2 Vee validate返回始终为真,vuejs2,Vuejs2,我有两个字段要验证,但在提交后,在validateBeforSubmit()方法中始终返回true Whitout按钮submit运行良好,返回错误。良好语言中的first(name) 我做错了什么 App.vue: <form @submit.prevent="validateBeforeSubmit"> <form-input v-on:input="handleTitle" :validate="'required|email'" label="email" l

我有两个字段要验证,但在提交后,在validateBeforSubmit()方法中始终返回true

Whitout按钮submit运行良好,返回错误。良好语言中的first(name)

我做错了什么

App.vue:

<form @submit.prevent="validateBeforeSubmit">

    <form-input v-on:input="handleTitle" :validate="'required|email'" label="email" labelvalue="email" type="text" placeholder="" name="email" :value="title" classname="form-control" id=""></form-input>
    <form-input v-on:input="handleLink" :validate="'required'" label="Link" labelvalue="Link" type="text" placeholder="" name="link" :value="link" classname="form-control" id=""></form-input>

methods: {
        validateBeforeSubmit() {
            this.$validator.validateAll().then((result) => {
                if (result) {
                    // eslint-disable-next-line
                    alert('Form Submitted!');
                    return;
                }

                alert('Correct them errors!');
            });
        },

方法:{
ValidateBeforSubmit(){
这是。$validator.validateAll()。然后((结果)=>{
如果(结果){
//eslint禁用下一行
警报('表格已提交!');
返回;
}
警报(“纠正错误!”);
});
},
Input.vue:

<template>
     <div>
        <div class="form-group">
            <span>{{ errors.first(name) }}</span>
            <label v-if="label" :for="label" v-html="labelvalue"></label>
            <input v-validate="validate" v-on:input="updateValue($event)" :type="type" :placeholder="placeholder" :name="name" :value="value" :class="classname" :id="id">
        </div>
     </div>
</template>

export default {
    props: {
        validate: String,
        type: String,
        placeholder: String,
        name: String,
        value: String,
        classname: String,
        id: String,
        label: String,
        labelvalue: String
    },
    methods: {
        updateValue: function (evt) {
            this.$emit('input', evt)
        }
    }
}

{{errors.first(name)}
导出默认值{
道具:{
验证:字符串,
类型:字符串,
占位符:字符串,
名称:String,
值:字符串,
类名:String,
id:String,
标签:字符串,
labelvalue:String
},
方法:{
updateValue:函数(evt){
此.$emit('input',evt)
}
}
}

validateAll
不查看子组件。您必须插入父验证程序。在
Input.vue
文件中添加
inject:['$validator']
。它应该可以解决问题。导出块如下所示

export default {
    inject: ['$validator'],
    props: {
        validate: String,
        type: String,
        placeholder: String,
        name: String,
        value: String,
        classname: String,
        id: String,
        label: String,
        labelvalue: String
    },
    methods: {
        updateValue: function (evt) {
            this.$emit('input', evt)
        }
    }
}
有关
inject
的更多信息,请查看