选择jquery中的下一个选项selectmenu

6fe3ivhb  于 2023-06-22  发布在  jQuery
关注(0)|答案(4)|浏览(150)

尝试创建一个按钮,该按钮将后藤指定了$selectmenu的selectmenu中的下一个选项。

$('option:selected', 'select').removeAttr('selected').next('option').attr('selected', 'selected');

在标准的HTML选择菜单上工作,但当它分配了jquery $selectmenu时就不行了。

$('select#toolMenu').selectmenu({
    style:'popup', 
    width: 600,
    menuWidth: 600,
    maxHeight: 400,
    format: addressFormatting,
    change: function () { 
        var val = this.value;
        window.location=val;
    } 
});

你知道我怎么控制选择菜单吗?

7z5jn7bk

7z5jn7bk1#

你应该使用插件value方法。

$("select#toolMenu").selectmenu("value", theIndex);

其中theIndex是选项的从零开始的索引
请注意,如果您在运行时修改select中的<option>列表,则必须完全销毁并从头开始创建插件。例如,下面的函数执行一个 AJAX 调用来更新select元素的选项列表

$.ajax({
    type: "post",
    dataType: "json",
    url: 'your_url',
    async: false,
    data: {},
    beforeSend: function() {
        $("#mySelect").selectmenu('disable'); 
    },
    success: function (response) {
        $('#mySelect').html('');
        $.each(response, function (i, data) {
            $('#mySelect').append($("<option></option>").attr("value", data.Value).text(data.Text));
        });
        $('#mySelect').selectmenu('destroy').selectmenu();
    }
});
r7xajy2e

r7xajy2e2#

更改所选选项后,您将不得不再次调用插件函数。
该插件将添加一些样式的HTML元素的基础上下拉。一旦它被渲染出来,就很难用你自己的代码来手动改变它了。您可能需要在下拉列表中再次调用该函数,即修改后的函数。

jk9hmnmh

jk9hmnmh3#

由于菜单是为了加载一个新的页面为每个选项,我只是抓住了原来的选项瓦尔(),并前往下一页,菜单将自动重新启动与DOM。

jqueryMenu()

        $('a.previous').click(function(){

            val = $('option:selected', 'select').previous('option').val();
            window.location=val;

        })

        $('a.next').click(function(){

            val = $('option:selected', 'select').next('option').val();
            window.location=val;

        })
tuwxkamq

tuwxkamq4#

@Lorenzo部分正确。可以使用value或index方法更改当前活动选项。
当改变select(add,modify,remove选项)时,你不需要销毁reinit selectmenu,而是在你已经初始化的元素上再次使用myElement.selectmenu()。
请参阅wiki了解更多信息:https://github.com/fnagel/jquery-ui/wiki/Selectmenu

相关问题