Как задать значение, выбранное с помощью выпадающего списка автозаполнения jQuery

#jquery #jquery-ui #jquery-autocomplete

#jquery #jquery-пользовательский интерфейс #jquery-автозаполнение

Вопрос:

Мы используем выпадающее список автозаполнения для проекта и определяем список выбора с параметрами, добавляемыми из вызова api. Я добавляю первый вариант ‘all’, к которому я также добавляю выбранный атрибут, но поле со списком не распознает это, и после его загрузки в поле отображается ‘All’. Я также пытался установить значение val для combobox равным значению ‘All’ после того, как оно было привязано, но у меня не было никакой радости. Как я могу выбрать значение по умолчанию?

Ответ №1:

Я думаю, вы должны иметь возможность просто установить один из <option> элементов как выбранный обычным способом:

 <option value="x" selected="selected">Stuff</option>
  

Вам нужно сделать это перед привязкой combobox к <select> . Если вы посмотрите на исходный код для combobox, вы увидите это:

 var self   = this,
  select   = this.element.hide(),
  selected = select.children( ":selected" ), 
  value    = selected.val() ? selected.text() : "";

var input = this.input = $( "<input>" )
                .insertAfter( select ) 
                .val( value )
                /* ... */
  

Он ищет выбранные дочерние элементы и устанавливает значение текстового ввода в то, что он находит с пустой строкой в качестве запасного варианта. Значение по умолчанию «выберите первый элемент», который использует <select> элемент, здесь не используется, хотя вы должны явно пометить его <option> как выбранный, иначе :selected селектор не будет, гм, выбирать его.