问题 动态jQuery UI Selectmenu值不会更改可见的选定值


我正在使用jQuery UI Selectmenu并且无法设置所选渲染的值。它似乎更改了基础选择中的选定选项,但selectmenu不显示更改。我打电话给.selectmenu('刷新',真实),但没有任何反应。

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


8816
2018-03-29 00:16


起源

我不知道为什么,但删除selectmenu()调用修复它: jsfiddle.net/Brpcu/2。 - jimw
@jimw如果没有selectmenu,它们现在只是通用的drop list,我需要selectmenu来进行样式化 - SocioBit
确实,但希望这将有助于弄清楚什么是错的。 selectmenu调用了什么?如果在调用之前和之后检查DOM,会发生什么变化? - jimw
stackoverflow.com/questions/10277866/... - Wasim A.


答案:


Hiya所以 演示 (解) http://jsfiddle.net/wYBeL/43/ 而不是刷新尝试 .selectmenu("value", selectedValue); 或(黑客) http://jsfiddle.net/wYBeL/36/ (保持你的selectpopup设置:)什么适合你

所以我使用firebug检查了DOM,它似乎是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);

            }

        });
    });​

干杯


13
2018-03-29 00:55



非常感谢,顶尖!解决了我的问题。 - SocioBit
不用担心!很高兴它帮助:),干杯! - Tats_innit
使用'value'方法的第一种方法不再适用于JqueryMobile 1.1。 “错误:selectmenu小部件实例没有这样的方法'值'” - Wytze
stackoverflow.com/questions/10277866/... - Wasim A.