Выпадающий список обязательный элемент

#vue.js #vuelidate

Вопрос:

Здравствуйте, у меня есть выпадающий список.

Мне нужно убедиться, что выбрана опция, поэтому я хочу выполнить проверку клиента для требуемого поля.

    <b-dropdown id="clientData"
                      name="clientData"
                      v-model="$v.clientData.selectedOption.$model"
                      :text="clientData.selectedOption"
                      class="m-2 col-2" no-flip>
          <b-dropdown-item v-for="option in clientData.options"
                            :key="option.value"
                            :value="option.value"
                            @click="clientData.selectedOption = option.value">
            {{option.text}}
          </b-dropdown-item>
        </b-dropdown>
    
<script>
import { required } from 'vuelidate/lib/validators'
    const selectedOptionCheck = (selectedOption) => selectedOption !== 'Choose data type'
    
     data () {
        return {
          clientData: {
            csvFile: null,
            selectedOption: 'Choose data type',
            options: [
              {
                value: 'PhoneNumber',
                text: 'Phone Number'
              },
              {
                value: 'Email',
                text: 'Email'
              },
              {
                value: 'DeviceToken',
                text: 'Device Token'
              }
            ]
          }
        }
      },
      validations: {
        clientData: {
          selectedOption: {
            required,
            selectedOptionCheck
          }
        }
      },
</script>
 

Это потому, что я не хочу отправлять неверный запрос на сервер.
Я использовал Vuelidate, и это не работает. Я попытался найти необходимый тег и попробовал aria-required= «Пожалуйста, выберите опцию» в раскрывающемся списке b, однако, опять же, это не работает.

Ответ №1:

Вы можете сделать следующее — установите свой v-model в своем data return равном null .

Чем пытаться использовать computed и проверять, выбрано ли что-то подобное:

 computed: {
  validData: function () {
      return this.yourvmodelname
   },
}
 

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

1. Мне все еще нужен текст по умолчанию «Выберите тип данных». Это не сработает.

2. Может быть, установите свой v-model data return в Choose data type «кому» и вернитесь false , validData если он равен null «или Choose your data type «?