JQuery selectmenu 在更改时设置选定索引

标签 jquery

我正在尝试设置选择框的选定索引/selectMenu 更改回到第一个选项。

这是我到目前为止的代码

    $obj = $("<select class='class1' />");
    $obj.append("<option value='-1' selected='selected' class='icon1'>default</option>");
    $obj.append("<option value='0' class='icon2'>opt1</option>");
    $obj.append("<option value='1' class='icon2'>opt2</option>");
    $obj.append("<option value='2' class='icon2'>opt3</option>");

    $("#container").append($obj);
    $obj.selectmenu({
        transferClasses: true,
        icons: [
            {find: '.icon1', icon: 'ui-icon-flag'},
            {find: '.icon2', icon: 'ui-icon-plus'}
        ],
        change: function(){
            // doesn't work $(this).find("option:first").attr("selected","selected");
            // doesn't work $(this).selectedIndex = 0;
            // doesn't work $(this).val(-1);
            // doesn't work $(this).val("-1");
            // doesn't work $(this).val("");
        }
    });

看看这个Fiddle ,我更改了顶部下拉菜单。如果您更改该值,然后重新打开下拉菜单,所选值将“跳转”到我更改后的值。我希望一旦我选择任何值它就在那里。

最佳答案

这似乎对我有用:

$("select").change(function(){
    $('select :first-child').attr('selected','selected');
});

http://jsfiddle.net/CzRWD/

或者如果您更愿意使用$(this),您可以这样做:

$("select").change(function(){
    $(this).children(":first").attr('selected','selected');
});

http://jsfiddle.net/CzRWD/1/

更新

经过一番尝试和大量研究后,我发现更改 selectmenu 插件中索引的方法是使用 value 属性并传入项目的值您要选择。

这是在更改事件内完成的:

$(this).selectmenu("value",$(this).children(":first").val());

这是一个使用 jsfiddle 的工作示例:http://jsfiddle.net/GXtpC/86/

关于JQuery selectmenu 在更改时设置选定索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7124955/

相关文章:

javascript - 如何从 aspx 文件中的脚本将值设置为 script(.js) 文件中的变量

javascript - 如何使用 jquery DOM 选择器显示 JSON 数据?

jquery 在生产 Rails 项目中不起作用

jquery - 扩展jqgrid子网格

javascript - 无法从选择下拉菜单中重定向页面

javascript - ajax jQuery 中的 getAttribute()

javascript - 将变量传递给 javascript 函数

jquery - 如何使用辅助函数将自定义类名称添加到 Handlebars 模板中的元素?

javascript - 使用 Tiny Carousel jQuery 插件滑动 div

javascript - 使用来自 loopj.com 的 jQuery tokeninput