如何突出显示与已键入文本匹配的jQuery自动完成结果?

问题描述 投票:15回答:1

我已经为客户端实现了jQuery Autocomplete。现在他们要我突出显示(例如使bold)与他们键入的文字相匹配的结果部分。

例如用户键入“某物”,结果如下:

something a

something b

另一个某物

某事其他

此功能是否内置在jQuery Autocomplete中?如果是这样,那是什么?

或者这是我必须实现自己的东西吗?如果是这样,我从哪里开始?

javascript jquery jquery-ui jquery-autocomplete jquery-ui-autocomplete
1个回答
0
投票

我以前有相同的要求。

下面的代码可能对您有用。

“您必须小心选择器”

<script>
  $("#input-search-box")
    .autocomplete({
      //your code
    })
    .data("autocomplete")._renderItem = function(ul, item) {
    var items = $("<li></li>").data("ui-autocomplete-item", item);
    //match and key variables highlight the user's typed input rendering in bold blue for dropdown items.
    var match = new RegExp("^" + this.term, "i"); //i makes the regex case insensitive

    //change initial typed characters of all item.label   replace is plain JS
    var key = item.label.replace(
      match,
      '<span class="required-drop">' + this.term + '</span>'
    );

    items.html("<a>" + key + "</a>").append(ul);
  }; 
</script>

让我知道您是否需要更多帮助来实现此代码。

© www.soinside.com 2019 - 2024. All rights reserved.