草庐IT

javascript - jQuery 用户界面 : Autocomplete - How do I search multiple values within an array?

coder 2024-07-23 原文

如果您查看以下 JS:(实时:http://jsfiddle.net/RyanWalters/dE6T3/2/)

var projects = [
    {
        value: "jquery",
        label: "jQuery",
        desc: "the write less, do more, JavaScript library",
        icon: "jquery_32x32.png"
    },
    {
        value: "jquery-ui",
        label: "jQuery UI",
        desc: "the official user interface library for jQuery",
        icon: "jqueryui_32x32.png"
    },
    {
        value: "sizzlejs",
        label: "Sizzle JS",
        desc: "a pure-JavaScript CSS selector engine",
        icon: "sizzlejs_32x32.png"
    }
];


$("#autocomplete").autocomplete({
    source: function(request, response){
        var matcher = new RegExp( $.ui.autocomplete.escapeRegex( request.term ), "i" );
        response( $.grep( projects, function( value ) {
            value = value.value || value.desc || value.icon;
            return matcher.test( value );
        }) );
    }
});

我正在尝试让自动完成搜索 projects 中的 valuedescicon 字段> 数组。但是,当我在搜索框中输入值时,我只能搜索 value 字段。 descicon 字段被完全忽略。

如何才能在这三个字段中的任何一个字段中搜索文本?

最佳答案

value = value.value || value.desc || value.icon;

这会将值设置为第一个“thuthy”值(始终为 value.value)。

尝试这样的事情:

response($.grep(projects, function(value) {
    return matcher.test(value.value) || matcher.test(value.desc) || matcher.test(value.icon);
}));

关于javascript - jQuery 用户界面 : Autocomplete - How do I search multiple values within an array?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9980357/

有关javascript - jQuery 用户界面 : Autocomplete - How do I search multiple values within an array?的更多相关文章

随机推荐