как динамически выбрать опцию в меню выбора jquery ui?

<p>после изменения меню с обычного выбора на меню выбора jquery я больше не могу выбирать параметры в нем программно. есть ли способ сделать это?</p><p>код для выбора (при условии, что listid является фактическим идентификатором списка)</p><pre><code>$('#listid').val(value); плагин активируется следующим образом:$("#listid").selectmenu({ style: "dropdown", width:140 }); </code></pre><p>есть ли способ выбрать пункт в меню выбора? вызов той же функции .val (value) просто выбирает значение в скрытом исходном списке выбора, а не в красиво стилизованном меню выбора jquery.</p>

<pre><code>$('#listid').selectmenu("value", value); 

предполагая, что вы уже сделали эту часть однажды:$("#listid").selectmenu({ style: "dropdown", width:140 }); </code></pre><p>я нашел это работает:</p><pre><code>$('#listid').val(value); $('#listid').selectmenu("refresh"); </code></pre><p>это приводит к тому, что стилизованный выпадающий список показывает правильное значение.</p>

<p>вы можете дополнительно вызвать обработчик события изменения, добавив вызов изменения:</p><pre><code>$('#listid').selectmenu("value", value); $('#listid').selectmenu("change"); // add this for a change event to occur </code></pre>

<p>обратите внимание, что вы должны использовать<strong> indexes </strong>(не значения), чтобы выбрать опцию, используя этот метод. </p><p>например, учитывая этот выбор.</p><pre><code><select id="listid"> <option value="value-one">one</option> <option value="value-two">two</option> </select> </code></pre><p>в этом случае выражение <code>$('#listid').selectmenu("value", "value-two"); не вернет никакого результата. вместо этого мы должны использовать $('#listid').selectmenu("value", "2");</code>. другими словами, мы должны использовать позицию/индекс элемента внутри выбора. не ценность!</p><p>найти индекс легко, хотя. вы можете использовать следующую строку для достижения этого.</p><pre><code>var index = $('#listid option[value="value-two"]').index(); $('#listid').selectmenu("value", index); </code></pre>

<p>я пробовал следующие способы, и это работает в моей ситуации</p><pre><code>$('#listid').find('option[value=""]').attr("selected", true); <strong>или же</strong>$('#listid').prop('selectedindex', 0); </code></pre>

<p>я пробовал следующее, и это не работает в моей ситуации</p><p>1.</p><pre><code>$('#listid').val(value); $('#listid').selectmenu("refresh"); </code></pre><p>2.</p><pre><code>$('#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"); </code></pre><p>обновить, выбрать .... и т. д. и в некоторых ситуациях это не работает.</p><p>поэтому я нажимаю <kbd>ctrl</kbd>+<kbd>i</kbd> в chrome, чтобы увидеть исходный код. и я использую следующий код, чтобы решить мою ситуацию.</p><pre><code>// set component separator jquery ui selectmenu componentseparatorplaceholder.find(".ui-selectmenu-text").html(inputcomponentseparatorstr); // set componentseparatordropdown componentseparator.val(inputcomponentseparatorstr); </code></pre>