Не удается проверить поля в vue.js

#jquery #vue.js #vuejs2 #vuelidate #vue-validator

#jquery #vue.js #vuejs2 #vuelidate #vue-валидатор

Вопрос:

В моей форме сгенерированы динамические поля, все проверки, которые должны быть установлены, извлекаются из базы данных (т. Е. Независимо от того, является ли поле обязательным или необязательным, а числовое значение или строка сохраняются в базе данных), теперь, когда страница отображается, я хочу проверить свою форму, я пытаюсь написать свои собственные пользовательские методы, но он не может проверить форму, проблема в сообщении об ошибке пользовательского метода не отображается, и форма также отправляется без проверки.

 <input v-model="field.user_value" :name="field.name" v-on:input="validateTextInput(field.field_validations,$event)" type="text" class="form-control input-md form-control"/>

methods: {
    validateTextInput(validations,event)
    {
      if(validations.req=='required')
      {
       if(event.target.value=='')
       {
         alert('This field is required');
         return false;
       }

       if(validations.allowed=='string')
       {
        
       }


      }
  

Ответ №1:

Вы не используете правильную переменную для события, используйте $event вместо e.target.value

 <input v-model="field.user_value" :name="field.name" v-on:input="validateTextInput(field.field_validations, $event)" type="text" class="form-control input-md form-control"/>

methods: {
    validateTextInput(validations,event)
    {
      if(validations.req=='required')
      {
       if(event.target.value=='')
       {
         alert('This field is required');
         return false;
       }

       if(validations.allowed=='string')
       {
        
       }


      }
  

Комментарии:

1. Я получаю значение, но моя проблема в том, как я могу показать ошибки и предотвратить отправку формы или есть какой-либо лучший способ для этого типа проверки, я обновил свой код.

2. создайте переменную в data(), например: «formIsValid: false», и если в любом из этих полей что-то не так, установите для нее значение «this.formIsValid= true», а затем прослушайте событие отправки формы и, возможно, отключите функцию, взгляните на: vuejs.org/v2/cookbook/form-validation.html

3. Можно ли использовать библиотеку vuelidate для этого типа проверки

4. возможно, если у вас достаточно знаний.