Framework7 Smart Select показать выбранный элемент

у меня есть этот маленький умный выбор:

<div class="list-block">
    <ul>
        <li>
            <a href="#" class="item-link smart-select" data-back-on-select="true" data-open-in="popup">
                <select name="projects" id="projects">
                  <option value="0" selected>Please choose...</option>
                  <option value="1" >House build</option>
                </select>
                <div class="item-content">
                    <div class="item-inner">
                        <div class="item-title">Aufträge</div>
                    </div>
                </div>
            </a>
        </li>
    </ul>
</div>

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

$$("#projects").val(getCookie("timerTasks"));

person beli3ver    schedule 09.01.2017    source источник


Ответы (3)


Для тех, кому нужен этот ответ в настоящее время, find("option:selected") больше не работает для этой цели. Вместо этого используйте find("option:checked").

Окончательный код будет

$$("#projects").val(getCookie("timerTasks")).parent().find('.item-title').html($$("#projects").find("option:checked").text());
person Paa Kwesi    schedule 16.05.2019

@tinyCoder понял почти правильно, за исключением того, что вам нужно обновить .item-after, а не .item-title. .item-title — это «метка» интеллектуального выбора, а .item-after отображает выбранное значение.

Кроме того, поскольку .html() будет отображать HTML, а нам нужен только текст, я думаю, что более уместно использовать .text(). Итак, мой однострочник будет выглядеть так:

$$("#projects").val(getCookie("timerTasks")).parent().find('.item-after').text($$("#projects").find("option:selected").text());

Framework7 v1.6.5 (сентябрь 2017 г.)

person TommyZG    schedule 03.12.2017
comment
Спасибо за обновление, Томми, я сейчас слишком далек от Framework7, и я действительно не знаю последних новостей, из-за проблем с совместимостью я стал родным. - person tinyCoder; 04.12.2017

Ну, я столкнулся с этим раньше. Вы должны обновить класс item-title после выбора значения из файла cookie:

Подробно:

// Select your value
$$("#projects").val(getCookie("timerTasks"));

// Selected value text
var selected_text = $$("#projects").find("option:selected").text();

// Change item-title
$$("#projects").parent().find('.item-title').html(selected_text);

Одна линия:

$$("#projects").val(getCookie("timerTasks")).parent().find('.item-title').html($$("#projects").find("option:selected").text());

Как видите, это распространенная проблема вот, мне интересно, почему это до сих пор не исправлено.

person tinyCoder    schedule 10.01.2017