私はhttp://jsfiddle.net/dhoerster/BXYpt/をjQuery UI オートコンプリートから値をベースとして使用しています。これは、OR 条件を使用できる必要があることを除いて、必要なことを正確に実行します。デモとしてフィドルを作成しました:
私の問題は次のとおりです。デモ項目は、車、電話、および電話付きの車です。オートコンプリートで 3 つのケースを処理する方法はありますか? したがって、「Car Phone」と入力すると、次のようになります。
1) 最初のケース - "Car Phone" はどのラベルの部分文字列でもないため、結果は 0 です。
2) 2 番目のケース - 「Car With Phone」に「Car」と「Phone」が表示されるため、結果は 1 です。これは、前の 0 件の結果の下のリストに追加されます。
3) 3 番目のケース - 「車」と「電話」というラベルに少なくとも 1 つの検索項目が含まれているため、さらに 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 条件 (含まれる用語の数による並べ替えを優先しない)