Как установить значение по умолчанию реализовано автозаполнение текстового поля?

У меня есть текстовое поле, реализованное с автозаполнением. Вот оно.

<input id="txtcity" />
$("#txtcity").autocomplete({
  source: function (request, response) {
    $.ajax({
      url: '@Url.Action("CityLookup", "PatientDemographic", "")', type: "POST", dataType: "json",
      data: { searchText: request.term, maxResults: 10 },
      success: function (data) {
        response($.map(data, function (item) {
          return { label: item.Text, value: item.Text, id: item.Value }
        }))
      }
    })
  },
  select: function (event, ui) {
    $("#CityCode").val(ui.item.id);
  },
  open: function () {
    $(this).removeClass("ui-corner-all").addClass("ui-corner-top");
  },
  close: function () {
    $(this).removeClass("ui-corner-top").addClass("ui-corner-all");
  }
});

Это возвращает три результата, скажем, "яблоко", "банан", "капуста". Как установить значение по умолчанию "Banana" во время рендеринга ? я.е, текст=" "банан "" значение="2"?

3 ответов


вы можете установить это значение после инициализации автозаполнения:

$( "#txtcity" ).autocomplete({
  // do whatever
}).val('Banana').data('autocomplete')._trigger('select');
Обновление : http://jsfiddle.net/55jhx/1/

измените следующую строку

 $('#txtcity').val() = item.value;

to

 $('#txtcity').val(item.text);

вызовите щелчок для первого элемента в ul чтобы запустить select для автозаполнения:

$("ul.ui-autocomplete li").first().trigger("click");