Я сражаюсь с Vee Validate 3.0 и начинаю задумываться, стоит ли продолжать. Все, что я хочу сделать, это создать собственное сообщение для определенного поля на определенной странице.
Я попытался с помощью приведенного ниже кода изменить сообщение регулярного выражения, но не могу заставить его работать.
Я использую Vee Validate 3.0 с Vue, поэтому в Интернете не так много ресурсов, чтобы помочь. Синтаксис версии 2 кажется намного проще!
<ValidationObserver ref="observer" v-slot="{ invalid }" tag="form" @submit.prevent="submit()">
<ValidationProvider :rules="{ regex: /^(0[1-9]|1[0-2])\/\d{4}$/ }" name="exp_date" v-slot="{ errors }">
<input name="exp_date" v-model="payment.expdate" placeholder="Expiry MM/YYYY" class="form-control"/>
<span class="warning">{{ errors[0] }}</span>
</ValidationProvider>
</ValidationObserver>
<script>
import { ValidationProvider, ValidationObserver } from 'vee-validate'
export default {
components: {
ValidationProvider,
ValidationObserver
},
data: function () {
return {
customMessages: {
en: {
fields: {
'exp_date': {
regex: 'The date format is MM/YYYY'
}
}
}
}
}
}
}
</script>
Обновление
У меня есть где-то это, но я не уверен, правильно ли я все настраиваю.
В моем main.js я импортирую vee-validate.js следующим образом
import './vee-validate'
В vee-validate.js я настраиваю все, что мне нужно для проверки на уровне приложения, как это
import { extend, configure, localize } from 'vee-validate'
import { required, max, max_value, email, regex, is, is_not } from 'vee-validate/dist/rules'
import en from 'vee-validate/dist/locale/en.json'
// Install rules
extend('required', required)
extend('max', max)
extend('max_value', max_value)
extend('email', email)
extend('regex', regex)
extend('is', is)
extend('is_not', is_not)
// Override English
localize({
en: {
messages: en.messages,
fields: {
exp_date: {
regex: '{_field_} is the wrong format. MM/YYYY'
}
}
}
})
Теперь настройка настраиваемого сообщения здесь работает для меня, но я не понимаю, если у меня одно и то же поле на 2 отдельных экранах, как я получу разные сообщения на каждом экране? ?
Обновление 2
Я не думаю, что есть способ настроить сообщение для каждой страницы - я думаю, что способ обойти это, чтобы каждая страница имела уникальные имена полей.