@drtvader
Вечный студент

Как делать активным нужный пункт в select2?

Использую в проекте select2. И необходимо, чтобы при переходе с др страницы был активен пункт равный хэшу.
К примеру, есть переход http://localhost:3000/guide-holiday.html#Активный
В select2 есть аналогичный option^ но при сравнении выдает false
var hash = window.location.hash.substring(1);
    console.log(hash);
    var $findOption = $('.js-select-hash').children().filter(function () {
        console.log($(this).text() === hash);
        return $(this).text() === hash;
    });
    if ($findOption.length) {
        var $select = $findOption.parent();
        $select.val(hash);
        $select.trigger('change');
    }

Скрин консоли
gmvNzyGt1RQp8m.jpg
В чем моя ошибка?
  • Вопрос задан
  • 50 просмотров
Решения вопроса 1
@drtvader Автор вопроса
Вечный студент
Поковырявшись вот что вышло
let hash = window.location.hash.substring(1);
    // перевод хэша
    let decode = decodeURI(hash);

    var $findOption = $('.js-select-hash').children().filter(function () {
        return $(this).text().trim() === decode;
    });

    if ($findOption.length) {
        var $select = $findOption.parent();
        $select.val(decode);
        $select.trigger('change');
    }

Проблема была больше в том что контент выводился с пробелом, .trim() помог это победить.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
$('#mySelect2').val('1'); // Select the option with a value of '1'
$('#mySelect2').trigger('change'); // Notify any JS components that the value changed

https://select2.org/programmatic-control/add-selec...

Непонятно зачем вы перебираете элемены и ищите какой-то текст.

Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы