在我的 Drupal 7 站点中,我有一个使用 Views 构建的产品概览页面。在该页面上,我有许多可以按任何顺序单击的复选框。对于单击的每个复选框,相应的标签将复制到输入文本字段中。此文本字段随后用作 jQuery Quicksearch 插件的搜索字段。(我从这里借用了这个想法,但我使用了 deuxhuithuit 的新插件版本)。
由于可以按任何顺序单击这些复选框,因此可以按任何顺序添加搜索字段中的标签。
然后我有大量包含产品的 div,其中每个产品都有一个标签文本字段,其中可以输入许多标签术语,仅用空格分隔,具体取决于产品的特性。
有什么方法可以让 Quicksearch 插件在 prepareQuery 和/或 testQuery 选项的帮助下以任何顺序接受这些条款?如果是这样,它是如何完成的?我花了很多时间试图找到如何做到这一点的例子。
如果这不可能,我想唯一的选择是构建一个函数,该函数将在搜索字段中按某个固定顺序对标签进行排序,然后始终以正确的顺序为每个产品输入标签术语......
无论如何,这就是设置现在的样子:
$('#searchfield').quicksearch('.views-column .views-field-field-soktaggar', {
'delay': 100,
'selector': 'div.searchtags',
'loader': 'span.loading',
'noResults': '#noresults',
'bind': 'keyup',
'show': function () {
$(this).parent('.views-column').removeClass('hide');
$(this).parent('.views-column').addClass('show');
},
'hide': function () {
$(this).parent('.views-column').removeClass('show');
$(this).parent('.views-column').addClass('hide');
},
'prepareQuery': function (val) {
return new RegExp(val, "i");
},
'testQuery': function (query, txt, _row) {
console.log('query: ' + query + ' txt: ' + txt + ' _row: ' + _row);
return query.test(txt);
}
});