【问题标题】:Use a custom display name (label) for VeeValidate 3 on errors错误时为 VeeValidate 3 使用自定义显示名称(标签)
【发布时间】:2023-04-03 14:54:01
【问题描述】:

如何更改验证错误中显示的“名称”。我知道我可以使用属性“名称”对其进行调整,但我想保留它与后端验证错误匹配的方式。我不想将后端的属性名称更改为描述性的名称。为了让用户更好地理解,我想在前端错误上使用更具描述性的名称。

我使用 Boostrap-Vue、Laravel 6 和 VeeValidate 3。这是我现在使用的代码。因此,不要使用“url 是必填字段”。我想展示例如“Link 是必填字段”而不更改 name 属性。

    <validation-observer ref="observer" v-slot="{ passes }">

        <b-form @submit.stop.prevent="passes(onSubmit)">
            <b-row>
                <b-col sm="2" lg="3">
                    <label for="url">{{ $t('channel.label_create_url') }}</label>
                </b-col>
                <b-col sm="10" lg="9">
                    <validation-provider
                        name="url"
                        :rules="{ required: true, min: 11, regex: /^(http:\/\/|https:\/\/)?[a-z0-9]+([\-.]{1}[a-z0-9]+)*\.[a-z]{2,}(:[0-9]{1,5})?(\/.*)?$/ }"
                        v-slot="validationContext"
                    >
                        <b-input
                            v-model="form.url"
                            :placeholder="$t('channel.placeholder_create_url')"
                            type="url"
                            size="lg"
                            name="url"
                            id="url"
                            required
                            autofocus
                            :state="getValidationState(validationContext)"
                            aria-describedby="input-url-live-feedback"
                        ></b-input>
                        <b-form-invalid-feedback
                            id="input-url-live-feedback">{{ validationContext.errors[0] }}
                        </b-form-invalid-feedback>
                    </validation-provider>
                </b-col>
            </b-row>
        </b-form>
    </validation-observer>

感谢任何提示!谢谢。

【问题讨论】:

    标签: javascript laravel vue.js vee-validate


    【解决方案1】:
                <validation-provider
                    vid="url"
                    name="Link"
                    :rules="{ required: true, min: 11, regex: /^(http:\/\/|https:\/\/)?[a-z0-9]+([\-.]{1}[a-z0-9]+)*\.[a-z]{2,}(:[0-9]{1,5})?(\/.*)?$/ }"
                    v-slot="validationContext"
                >
    

    您可以使用vid 属性来标识验证提供程序,然后name 将仅用于错误消息中。

    【讨论】:

    • 不,请阅读我的问题。我试图解释那不是我想要的。我想保留“url”作为名称属性。
    • 你能用vid="url"代替吗?目前尚不清楚为什么您需要验证提供者与您的后端具有相同的名称。
    • 我经常做的事情是明确地写错误信息并使用failedRules告诉我要显示哪些信息
    • 视频成功了。如果您更改答案,我会接受。谢谢!
    猜你喜欢
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-30
    • 2012-07-16
    • 2020-03-26
    相关资源
    最近更新 更多