jQuery自动完成(devbridge)lookupFilter来搜索多个属性

我有以下代码 –

$(function() { var fruits = [ { value: 'Apple',id: '123', data: 'Apple' }, { value: 'Pear', id: '543', data: 'Pear' }, { value: 'Carrot', id: '123', data: 'Carrot' }, { value: 'Cherry', id: '234', data: 'Cherry' }, { value: 'Banana', id: '543', data: 'Banana' }, { value: 'Radish', id: '3423', data: 'Radish' } ]; $("#autocomplete").autocomplete({ lookup: fruits, onSelect: function (suggestion) { alert('You selected: ' + suggestion.value + ', ' + suggestion.data); }, }); }); 

我想根据’value’和’id’进行搜索。 有lookupFilter函数,但我不知道如何使用它。 这是原始脚本 – https://www.devbridge.com/sourcery/components/jquery-autocomplete/这里有一些similer问题 – jQuery autocomplete(devbridge)从头开始搜索
请帮忙!

你可以试试下面的代码:

 $(function() { var fruits = [ { value: 'Apple',id: '123', data: 'Apple' }, { value: 'Pear', id: '543', data: 'Pear' }, { value: 'Carrot', id: '123', data: 'Carrot' }, { value: 'Cherry', id: '234', data: 'Cherry' }, { value: 'Banana', id: '543', data: 'Banana' }, { value: 'Radish', id: '3423', data: 'Radish' } ]; $("#autocomplete").autocomplete({ lookup: fruits, onSelect: function (suggestion) { alert('You selected: ' + suggestion.value + ', ' + suggestion.data); }, lookupFilter: function (suggestion, query, queryLowerCase) { return suggestion.value.toLowerCase().indexOf(queryLowerCase) < -1 || suggestion.id.toLowerCase().indexOf(queryLowerCase) < -1; //checking with both id as well as value } }); }); 

注意:我无法测试此代码,但我相信它应该适合您。

lookupFilter: function (suggestion, query, queryLowerCase) {}本地查找的过滤函数。 默认情况下,它执行部分字符串匹配(不区分大小写)。

码:

 var fruits = [{value: 'Apple',id: '123',data: 'Apple'}, {value: 'Pear',id: '543',data: 'Pear'}, {value: 'Carrot',id: '123',data: 'Carrot'}, {value: 'Cherry',id: '234',data: 'Cherry'}, {value: 'Banana',id: '543',data: 'Banana'}, {value: 'Radish',id: '3423',data: 'Radish'}]; $('#autocomplete').autocomplete({ lookup: fruits, onSelect: function(suggestion) { console.log('You selected: ' + suggestion.value + ', ' + suggestion.data); }, lookupFilter: function(suggestion, query, queryLowerCase) { var id = suggestion.id, value = suggestion.value.toLowerCase(); return id.indexOf(query) === 0 || value.indexOf(queryLowerCase) === 0; } });