Как отобразить сообщение об ошибке после ввода/поля

#vue.js #vuetify.js

Вопрос:

Я пытаюсь провести проверку без vuevalidate. Мне просто нужно показать это сообщение под полем ввода/, когда я получаю ошибку или ложь.

Я пробовал использовать :error-messages . Но это возвращает мне ошибку

Ошибка: check failed for prop "errorMessages". Expected String, Array, got Function

Код

 <v-text-field
   class="ma-0 pa-0"
   v-model="timeStart"
   :counter="5"
   :rules="rules_time"
   label="Hora de início"
   @blur="verificarHora"
   :error-messages="messageErrors"
></v-text-field>

...
methos: {
...
verificarHora(element){
      if(!element.target.value.match(/^[0-9] $/)){
        this.messageErrors()
      }
},
messageErrors(){
      return 'erro';
},
...
}
 

Ответ №1:

Обычно я выполняю такое поведение в Vuetify, добавляя rules параметр (подробнее см. Здесь).

Итак, в качестве примера, если ваше входное значение не может превышать 20 символов и допускаются только буквы, вы можете написать следующий код:

 <template>
  <v-text-field
    counter="20"
    :rules="myRules"
  />
</template>

<script>
export default {
  ...
  data: () => ({
    myRules: [
      input => input.length <= 20 || "Input exceeds 20 characters.",
      input => /^[A-Za-zäÄöÖüÜß]*$/.test(input) || "Only letters are allowed."
    ]
  })
  ...
}
</script>