【问题标题】:Show hotels in autocomplete response在自动完成响应中显示酒店
【发布时间】:2018-05-16 17:29:18
【问题描述】:

我的视图中有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тв 显示机场和城市。

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

我还需要填充酒店以自动完成结果。

我该怎么做?

【问题讨论】:

    标签: javascript jquery typescript autocomplete


    【解决方案1】:

    我可以得到酒店的价值只需添加这一行

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

    【讨论】:

      猜你喜欢
      • 2012-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-27
      • 1970-01-01
      • 1970-01-01
      • 2015-04-17
      • 1970-01-01
      相关资源
      最近更新 更多