显示自动完成响应中的酒店

时间:2018-05-16 09:18:00

标签: javascript jquery typescript autocomplete

我在视图中输入了autocomplete

这是脚本,我是如何处理它的

    $(targetSelector).each(function() {
      $(this)
        .autocomplete({ delay: 10, minLength: 0, source(request, response) {
              $(this.element[0]).attr("data-req-term", request.term);
              $.ajax({
                url: $(this.element[0]).attr("data-source"),
                dataType: "json",
                data: {
                  term: request.term
                },
                success(data) {
                  console.dir(data);
                  const results = [];
                  $.map(data.cities, function(value, key) {
                    results.push(value);
                    return $.map(value.airports, (value2, key2) =>
                      results.push(value2)
                    );

                  });
                  $.map(data.airports, (value, key) => results.push(value));
                  return response(results);
                },
                error() {
                  return response([]);
                }
              });
              return null;
            }, focus(event, ui) {
              return false;
            }, select(event, ui) {
              const qel = $(event.currentTarget);
              qel.val(ui.item.fullname);
              $(qel.attr("data-id-element")).val(ui.item.id);
              return false;
            }
      })
      .data("ui-autocomplete")._renderItem = function(ul, item) {
        return create_autocomplete_item($(this.element[0]), ul, item);
      };

      if (enableAutocompleteSelect) {
        $(targetSelector).on("autocompleteselect",
          function() {
            if ($(this)[0].id.indexOf("origin") !== -1) {
              const id = $(this)[0].id.split("_")[2];
              $(`#search_legs_${id}_destination_text`).focus();
            }
          });
      }

      $(targetSelector).focus(function() {
        $(this).keydown();
      });

      $(targetSelector).on("blur", function() {
        const value = $(this).val() as string;
        if (value.trim() == "") {
          $(this).val("");
        }
      });
    });
  }

此功能用于获取自动完成的数据。 Aтв显示机场和城市。

这是来自服务器的答案,我得到了。

enter image description here

我还需要在酒店中填写自动填充结果。

我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

我可以为酒店获取值,只需添加此行

$.map(data.hotels, (value,key)=> results.push(value));