javascript - 使用 jQuery UI Autocomplete,如何确保无论输入什么文本都会出现一个特定的结果?

标签 javascript jquery jquery-ui autocomplete

我的自动完成源列表有点像这样:

var items = ['UK', 'IE', 'BE', 'NL', 'PLC'];

我试图确保我的自动完成的结果集总是包含一个 特定术语(在本例中为 PLC)。

我试过将 PLC 添加到源列表,然后覆盖自动完成结果过滤器(参见 here)。

无论输入什么,我都可以让它返回“PLC”:

$("#autocomplete").autocomplete({
    source: function(request, response) {
        // The term the user searched for;
        var term = request.term;

        // Extract matching items:
        var matches = $.grep(items, function(item, index) {
            return /PLC/.test(item);
        });

        // let autocomplete know the results:
        response(matches);
    }
});

http://jsfiddle.net/GarethPN/xbZhr/6/

但是我如何在正则表达式中使用术语变量来保留标准功能?

或者是否有一种我遗漏的明显更简单的方法?

最佳答案

一个想法是创建一个匹配结果数组并向其中添加 PLC:

var items = ['UK', 'IE', 'FR', 'BE', 'NL'];
$("#autocomplete").autocomplete({
    source: function(request, response) {
        // The term the user searched for;
        var term = request.term;

        var matches = [];
        matches.push('PLC');/(add PLC
        // Extract matching items: (write your own function here)


        // let autocomplete know the results:
        response(matches);
    }
});

在这里摆弄:http://jsfiddle.net/xbZhr/8/

关于javascript - 使用 jQuery UI Autocomplete,如何确保无论输入什么文本都会出现一个特定的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7444623/

相关文章:

javascript - jQuery UI 可排序 'out' 未与多个连接的可排序一起触发

javascript - Fancybox 未关闭

JavaScript/Node.JS 在另一个 promise 中返回一个 promise 不起作用

javascript - 如何在 AngularJS 中使用 JavaScript 检测设备平台并更改链接 url

javascript - 为什么JSDOM改变了html结构?

jquery - 单击表格行数据应使用 jquery 重定向到 html 页面

jquery - 你如何在对话框中打开一个 URL JQUERY UI

jquery - 垂直 float div

javascript - jQuery data() 返回未定义,attr() 返回整数

jquery - 根据单击的标题单元格对表格进行排序