JQuery UI. Значение выбранного набора динамически не изменяет видимое выбранное значение.

Я использую jQuery UI Selectmenu, и у меня возникают проблемы с установкой значения выбранного рендеринга. Кажется, что выбранный вариант изменяется в базовом select, но selectmenu не показывает изменения. Я вызываю .selectmenu('refresh', true), но ничего не происходит.

Вот пример: http://jsfiddle.net/sociobit/wYBeL/

Ответ 1

Hiya So demo (решение) http://jsfiddle.net/wYBeL/43/ вместо обновления .selectmenu("value", selectedValue); ИЛИ (Hack) http://jsfiddle.net/wYBeL/36/ (сохраняет настройку selectpopup для вас:) Что вам больше всего подходит

Итак, я проверил DOM с помощью firebug, и кажется, что стиль selectmenu(): popup добавляет дополнительный слой стиля, но значение # sel2 установлено правильно, и вам просто нужно настроить правильный элемент с правильным значением. Я считаю, что обновление будет работать, если у вас будет ajax, заполняющий выпадающий список и обновляющий часть страницы.

Хм, вы можете попробовать посмотреть API для получения более подробной информации и в случае, если вам не нужно всплывающее меню selectmenu, то без него это будет работать так же, как @jiimw сказал: (стиль BUt выглядит странно): http://jsfiddle.net/wYBeL/35/; Пожалуйста, дайте мне знать, если это не поможет, я удалю сообщение.

дополнительная ссылка: http://wiki.jqueryui.com/w/page/12138056/Selectmenu

Надеюсь, что оба помогут.

Код JQuery здесь

$(function() {

    $('select').selectmenu({
        style: 'popup'
    });

    $('#chksame').click(function() {
        if ($(this).is(':checked')) {
            var selectedValue = $('#sel1').val();
            $('#sel2').val(selectedValue);

            $('#sel2').selectmenu("value", selectedValue);

        }

    });
});​

** ИЛИ **

$(function() {

        $('select').selectmenu({
            style: 'popup'
        });

        $('#chksame').click(function() {
            if ($(this).is(':checked')) {
                var selectedValue = $('#sel1').val();
                $('#sel2').val(selectedValue);

                // set the right element with the select value
                $('#sel2-button span').text($("#sel2 option[value='" + selectedValue +"']").text());

                $('#sel2').selectmenu('refresh', true);

            }

        });
    });​

Приветствия