У меня есть автозаполнение jquery в текстовом поле, и я использую хакерский способ разрешить автозаполнение несколько раз в том же текстовом поле. В принципе, вы можете запятой разделить значение, а затем регулярное выражение будет пытаться сопоставляться с термином только после окончательного значения. Например, я могу иметь собаку, кошку, пи в текстовом поле, а jquery будет автозаполнен для свиньи, потому что я передаю только «пи» на автозаполнение. Единственная проблема с моим подходом заключается в том, что если пользователь нажимает на предложение автозаполнения, все предыдущие данные (собака, кошка) исчезают и заменяются значением автозаполнения «свинья». Любые идеи о том, как можно нажимать на предложения без стирания предыдущих данных?JQuery Autocomplete очищает текстовое поле предыдущих данных?
function filterResults(myList, matcher) {
var retGrep = new Array();
for (var i = 0; i < myList.length; i++) {
if (matcher.test(myList[i])) {
retGrep.push(myList[i]);
}
}
return retGrep;
}
$("#title").autocomplete({
source: function(request, response) {
if(request.term.indexOf(',') != -1){
var re = $.ui.autocomplete.escapeRegex(request.term.substr(request.term.lastIndexOf(',') + 1));
}else{
var re = $.ui.autocomplete.escapeRegex(request.term);
}
var matcher = new RegExp("^" + re, "i");
var results = filterResults(titleList, matcher);
response(results.slice(0, 5));
},
messages: {
noResults: '',
results: function() {}
}
});
Можете ли вы показать соответствующий код? – mattfetz
Я разместил его ... комментариев нет .. давай .... – KodeDawg
На самом деле, мы не получаем предупреждения об изменении, поэтому его легко пропустить. Вот почему вы хотите, чтобы вся информация была в вопросе с самого начала, чтобы вы могли получить максимум от нашей помощи. – mattfetz