如何动态选择jQuery ui selectmenu中的选项?

将菜单从常规选择更改为jQuery选择菜单后,我无法再以编程方式选择其中的选项。 有没有办法做到这一点?

要选择的代码是(假设ListId是列表的实际ID)

$('#ListId').val(value); 

该插件被激活如下:

 $("#ListId").selectmenu({ style: "dropdown", width:140 }); 

有没有办法在选择菜单中选择一个项目? 调用相同的.val(value)函数只选择隐藏原始选择列表中的值,而不是选择风格很好的jQuery selectmenu。

 $('#ListId').selectmenu("value", value); 

假设您之前已经完成过这个部分:

 $("#ListId").selectmenu({ style: "dropdown", width:140 }); 

我发现这个有效:

 $('#ListId').val(value); $('#ListId').selectmenu("refresh"); 

这会导致程式化下拉显示正确的值。

您还可以通过添加更改调用来触发更改事件处理程序:

 $('#ListId').selectmenu("value", value); $('#ListId').selectmenu("change"); // Add this for a change event to occur 

请注意,您必须使用索引 (而不是值)来使用此方法选择选项。

例如,给出这个选择。

  

在这种情况下表达式$('#ListId').selectmenu("value", "value-two"); 不会返回任何结果。 而不是那样,我们必须使用$('#ListId').selectmenu("value", "2"); 。 换句话说,我们必须使用select中元素的位置/索引。 不是价值!

虽然找到索引很容易。 您可以使用以下行来实现它。

 var index = $('#ListID option[value="value-two"]').index(); $('#ListId').selectmenu("value", index); 

我尝试了以下,但在我的情况下它不起作用

1。

 $('#ListId').val(value); $('#ListId').selectmenu("refresh"); 

2。

 $('#ListId').selectmenu("value", value); 

3。

 var option = $("#ListID option") option.attr("selected", true); // option.prop("selected", true); // option.attr("selected", "selected"); // option.prop("selected", "selected"); $('#ListId').selectmenu("refresh"); 

刷新,选择….等。 在某些情况下它不起作用。

因此,我在chrome中按ctrl + I来查看源代码。 我使用以下代码来解决我的情况。

 // Set Component Separator jQuery UI SelectMenu componentSeparatorPlaceHolder.find(".ui-selectmenu-text").html(inputComponentSeparatorStr); // Set ComponentSeparatorDropDown componentSeparator.val(inputComponentSeparatorStr); 

我尝试了以下方法,它确实适用于我的情况

 $('#ListId').find('option[value=""]').attr("selected", true); 

要么

 $('#ListId').prop('selectedIndex', 0);