我正在使用来自jQuery UI 自动完成的http://jsfiddle.net/dhoerster/BXYpt/以值作为基础。这正是我需要的,除了我需要能够有 OR 条件。我创建了一个小提琴作为演示:
我的问题是:演示项目是汽车、电话和带电话的汽车。有没有办法让自动完成处理三种情况:字符串包含大小写(默认),然后是 ANDed 大小写,最后是 OR 大小写?因此,如果我输入“车载电话”,它将导致:
1) 第一种情况 - 0 结果为“车载电话”不是任何标签的子字符串。
2) 第二种情况 - 1 个结果,因为“汽车”和“电话”出现在“带电话的汽车”中。这将添加到前面 0 结果下方的列表中。
3) 第三种情况 - 因为标签“汽车”和“电话”至少包含一个搜索项,所以显示了另外 2 个结果。这些结果显示在第 1 阶段和第 2 阶段的先前结果下方,因此现在应该呈现下面的选择框:
带电话的汽车
车
电话(汽车和电话订单真的无关紧要,因为它们都同样正确)
这是有问题的javascript:
$(document).ready(function() {
$( "#topics" ).autocomplete({
minLength: 1,
source: topics,
focus: function( event, ui ) {
$( "#topics" ).val( ui.item.label );
return false;
},
select: function( event, ui ) {
$( "#topics" ).val( ui.item.label );
$("#topicID").val(ui.item.id);
$( "#results").text($("#topicID").val());
return false;
}
})
});
那么是否有可能按顺序执行:
1) string.contains (默认)
2) 字符串拆分 --> AND 条件
3) 字符串拆分 --> OR 条件(不优先按包含的术语数排序)