2016-10-09 1 views
0

У меня есть простая функция автозаполнения, которая ищет массив объектов. Он работает нормально, но я хочу переопределить то, что ищет пользователь.Как переопределить ввод пользователя в автозаполнение JQuery?

Я хочу, чтобы добавить другое значение ввода для их поиска. Например, если они ищут «cat», я хочу добавить $('#input2').val(), чтобы их поиск стал «собакой кошки» (без изменения фактического значения < >).

Это похоже на легкую вещь, но я не могу понять, как это сделать, не переопределяя весь метод поиска.

Существующий код:

$("#search").autocomplete({ 
    source: data, 
    appendTo: '#admin-results' 
}).data("ui-autocomplete")._renderItem = function(ul, item) { 
    return $('<li>') 
    .append('<div>' + item.label + '</div>') 
    .appendTo(ul); 
}; 
+0

'source' функция может быть http://api.jqueryui.com/autocomplete/#option-source – charlietfl

+1

@charlietfl Появляется OP пытается изменить входное значение, переданное '.autocomplete()' – guest271314

+0

@ guest271314 Я читаю * "без изменения входного значения" * – charlietfl

ответ

2

Ниже будет делать то, что вы просите, используя функцию источника

var terms = ["c++", "java dog", "php dog", "coldfusion", "javascript dog", "asp dog", "ruby"] 
$("#autocomplete").autocomplete({ 
    source: function(req, response) { 
    var term = req.term + ' dog';// adjust to a dom value or whatever 
    var res = terms.filter(function(item) { 
     return item.toLowerCase() === term.toLowerCase() 
    }); 
    response(res); 
    } 
}); 

Настройка фильтра соответственно. Это грубое только для абсолютного матча

DEMO

+0

Другой подход - удалить расширенный термин в вашей фильтрации – charlietfl

0

1.Get на валу от # админа результатов. поместите значение val в переменную «a».
2.а = а + desiredVal
3.Put новых «а» в # админа результаты

 Смежные вопросы

  • Нет связанных вопросов^_^