Я пытаюсь отсортировать предложения в зависимости от положения строки поиска внутри полей данных. Если кто-то печатает «ar», предложение A: «как дела» следует заказывать перед B: «приходи, как есть», потому что строка поиска соответствует 2-му слову в A и 4-му слову в B. Это уже работает очень ну.
Чтобы получить строку поиска, я использую $('.searchfield').val()
. Проблема в том, что у меня есть несколько полей поиска внутри страниц, поэтому я должен знать, какое поле поиска в настоящее время используется.
Вот мой код в объявлении Bloodhound:
sorter: function(a, b) {
var input_string = $('.searchfield').val(); // <-- Here is my problem
input_string = input_string.split(/[ \-]+/);
input_string = input_string[0].toLowerCase();
var aArray = a.name.toLowerCase().split(/[ \-]+/);
var bArray = b.name.toLowerCase().split(/[ \-]+/);
var apos = 0, bpos = 0;
for (var i = 0; i < aArray.length; i++) {
if (aArray[i].indexOf(input_string) !== -1) {
apos = i;
break;
}
}
for (i = 0; i < bArray.length; i++) {
if (bArray[i].indexOf(input_string) !== -1) {
bpos = i;
break;
}
}
if (apos < bpos) {
return -1;
} else if (apos > bpos) {
return 1;
} else return 0;
}
Кто-нибудь знает, как получить строку поиска для используемого в настоящее время поля ввода?
Спасибо,
Бернд
PS Извините за мой engli sh