12

我正在使用 jQuery UI Selectmenu 并且无法设置渲染选择的值。似乎更改了基础选择中的选定选项,但选择菜单未显示更改。我正在调用 .selectmenu('refresh', true) 但没有任何反应。

这是一个例子:http: //jsfiddle.net/sociobit/wYBeL/

4

1 回答 1

15

Hiya So演示(解决方案)http://jsfiddle.net/wYBeL/43/而不是刷新尝试.selectmenu("value", selectedValue);或(Hack)http://jsfiddle.net/wYBeL/36/(保留你的 selectpopup 设置:) 适合什么你

因此,我使用 firebug 检查了 DOM,似乎 selectmenu() 样式:弹出添加了额外的样式层,但 #sel2 值设置正确,您只需要使用正确的值设置正确的元素。我认为当您将有一个 ajax 填充下拉列表并刷新页面的一部分时,刷新将起作用。

嗯,您可以尝试查看 API 以获取更多详细信息,如果您不需要 selectmenu 弹出窗口,那么如果没有它,这将像@jiimw 所说的那样工作:(但样式很奇怪):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);

            }

        });
    });​

干杯

于 2012-03-29T00:55:37.863 回答