Установка выбранного значения по умолчанию в раскрывающемся списке Vue.Js

У меня проблема с получением значения, выбранного по умолчанию, с помощью select в VueJs. Я пробовал в двух случаях:

  1. Передача полей id и v-model в select как:

<select v-model = "sort_brand" id = "sort-brand" class = "form-control">
  <option value = "all" selected = "selected">All(Brands)</option>
  <option v-for = "brand in brands" :value = "brand.id">{{ brand.name }}</option>
</select>

В этом случае выбранное значение по умолчанию будет пустым.

  1. Передача sort_brand без идентификатора для выбора:

<select id = "brand-id" class = "form-control">
  <option value = "all" selected = "selected">All(Brands)</option>
  <option v-for = "brand in brands" :value = "brand.id">
    {{ brand.name }}
  </option>
</select>

Выбранное значение по умолчанию заполняется, но тогда у меня нет привязки формы для VueJs. Кто-нибудь, пожалуйста, помогите с этим:

jsfiddle.net/MaraBlack/oqkaq6ad Насколько я понимаю, вам нужен выбор по умолчанию, установите его на data: {}, а затем вы можете получить доступ к нему везде this.selected в js или selected в html.
Mara Black 15.05.2018 13:26
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
2
1
8 031
3

Ответы 3

Vue.js будет управлять выбранным атрибутом на основе v-модели выбора и значения параметра. Таким образом, попытка установить выбранный атрибут не будет работать.

Для опции «Все» вы можете назначить значение null следующим образом:

<option :value = "null">All(Brands)</option>

А затем установите для переменной sort_brand значение null. Затем vue.js сопоставит нулевой sort_brand с параметром с нулевым значением.

Примечание: здесь я использовал null, потому что я обычно это делаю именно так, но я мог бы использовать любое другое значение. Вы также можете использовать строку «все».

Спасибо @Lunfel за логику, я установил sort_brand на пустую строку, я изменил ее на 'все ', и теперь она работает нормально

TechPotter 14.05.2018 16:59

Пустая строка должна работать, но у вас также есть e, чтобы явно установить значение как пустую строку в вашей опции <option value = ''> все бренды </option>

Steve 15.05.2018 18:27

Обновите sort_brand для всех в ловушке created, которая установит для параметра значение 'all' по умолчанию:

created (){
 this.sort_brand = 'all';
}

Вы также можете инициализировать модель в самих данных.

data (){
 return {
  sort_brand : 'all'
 }
}

Приведенные выше ответы (например, @Lunfel) работают, если ваши значения выбора простые (null, «Все» и т. д.). Если ваша комбинация привязана к сложным объектам JSON, тогда очень сложно установить связанную переменную и позволить ей автоматически выбирать.

Мне было намного проще найти нужный вариант на основе отображаемого текста в смонтированной функции () с помощью JQuery, а затем установить атрибут selected. Как вы это делаете, зависит от вашей версии JQuery. В последних версиях (не уверен, когда он изменился, я использую 1.10.2) вы можете использовать что-то вроде:

$("#sort-brand option").filter(function () {
    return $(this).prop("label") == 'All';
}).prop("selected", true);

Более старые версии JQuery не имеют функции prop (), но имеют несколько лучший селектор для функции find (). Пытаться:

$('#sort-brand').find('option[text = "All"]').attr('selected', 'selected');

См. Как выбрать вариант по тексту? для более подробного обсуждения выбора параметров раскрывающегося списка с помощью jQuery.

Другие вопросы по теме