使用自动完成 JQuery (ASP.NET, C#) 时如何点击选择

How to clickable for selection when using AutoComplete JQuery (ASP.NET, C#)

我正在使用 JQuery 自动完成.

在文本框 上执行涉及 自动完成的任务

我使用的文件之一:jquery-ui.js

然后,我需要在匹配的文本上应用 粗体。 例如,如果我在文本框中插入“Jav”,它们应该显示 Java.

我应用了这部分并且成功了,

open: function (e, ui) {
    var acData = $(this).data('ui-autocomplete');
    acData
    .menu
    .element
    .find('li')
    .each(function () {
        var me = $(this);
        var keywords = acData.term.split(' ').join('|');
        me.html(me.text().replace(new RegExp("(" + keywords + ")", "gi"), 
        '<b></b>'));
    });  
}

然而,当我 运行 文本框时,结果是这样的,我不能 select 项目并且当我悬停它时,它没有显示背景颜色.

Result before apply the code | Result after apply the code

有人帮帮我,谢谢:)

我认为您的问题是您正在通过以下调用将默认 html 标记(OOB 样式需要工作)替换为文本值:

me.html(me.text(.....));

尝试检索您的 html 并将关键字换行,使用类似以下内容的内容:

me.html().find(keywords).wrap( "<strong></strong>" )));

顺便说一句,根据我从网上找到的信息, 只需要更换 这个,

me.html(me.text().replace(new RegExp("(" + keywords + ")", "gi"), 
        '<b></b>'));

对此,

me.html( me.text().replace(regex, function (matched) {
                            return termTemplate.replace('%s', matched);
                        }) );

代码前:

$("#<%=test.ClientID %>").autocomplete({

我需要放这个,

var termTemplate = "<span class='ui-autocomplete-term'>%s</span>";

并为 .ui-autocomplete-term 创建 css,我将其放入 text-weight: bold

我发现了,一边感叹怎么解决这个问题。现在好了。