我正在尝试设置选择框的选定索引/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');
});
或者如果您更愿意使用$(this)
,您可以这样做:
$("select").change(function(){
$(this).children(":first").attr('selected','selected');
});
更新
经过一番尝试和大量研究后,我发现更改 selectmenu 插件中索引的方法是使用 value
属性并传入项目的值您要选择。
这是在更改事件内完成的:
$(this).selectmenu("value",$(this).children(":first").val());
这是一个使用 jsfiddle 的工作示例:http://jsfiddle.net/GXtpC/86/
关于JQuery selectmenu 在更改时设置选定索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7124955/