#jquery-ui #jquery #jquery-autocomplete
#jquery-пользовательский интерфейс #jquery #jquery-автозаполнение
Вопрос:
Я ищу помощь в своем коде, который допускает автозаполнение только в пределах указанного массива данных. Таким образом, разрешается вводить только данные в массиве автозаполнения. Не уверен, где это сделать.Вот мой код. Кто-нибудь может предложить??
$(document).ready(function () {
var data = ["ActionScript","AppleScript","Asp","BASIC","C","C ","iran","Scheme"];
$("#autocomplete").autocomplete(data);
});
$('input#autocomplete').result(function (event, data, formatted) {
$("#result").html(!data ? "No match found!" : "Selected: " formatted);
}).keyup(function () {
$(this).search();
$(this).css("background-color","#D6D6FF");
});
} catch (e) { }
});
Ответ №1:
Попробуйте mustMatch
вариант (документы):
$("#autocomplete").autocomplete(data, { mustMatch: true });
Пример: http: //jsfiddle.net/prCsm/
В качестве примечания, этот плагин устарел в пользу версии jQueryUI.
Комментарии:
1. Спасибо за ответ, но если я выполнил mustMatch:true, то в этом случае он также удалит действительные данные. например, если я написал Asp01, то он полностью удаляет текстовое поле. смотрите следующую ссылку и пример № 3 mabp.kiev.ua/content/source/autocomplete/autocomplete.html , я хочу такого поведения, которое не позволяло бы записывать что-либо после действительных данных. Любое предложение будет заметно: спасибо
Ответ №2:
Вы можете просто отключить поле ввода после того, как пользователь выбрал определенное значение. смотрите Строку 6 в примере кода
пример:
$("#autocomplete2").autocomplete({
url:'search.php?type=xml',
minchar:2,
delay:1000, // in milliseconds
onSelect:function(){
$("#autocomplete2").attr('disabled', 'disabled');
},
type:'xml'
});
Ответ №3:
Я делаю следующее:-
- Установите флажок false при вводе поля (onfocus)
- Установите флаг в значение true в событии выбора автозаполнения
- Проверьте флажок в поле при событии размытия
Если это правда, выбор хороший, в противном случае он плохой, и вы можете вернуть фокус в поле ввода.