Обрабатывать события
change,
select и
close. Использовать дополнительный атрибут, который будет содержать признак выбранности значения из списка:
$( "#tags" ).autocomplete({
source: availableTags,
change: function(){
$(this).attr('data-select', $(this).val() != '');
},
select: function(){
$(this).attr('data-select', true);
},
close: function(){
if($(this).attr('data-select')!='true'){
$(this).val('');
}
}
});
Посмотреть,
как это работает.
Если понадобится использование
autocomplete жестко, чтобы пользователь мог выбирать только из списка, то можно добавить дополнительный обработчик
change текстовому полю и удалять введенные данные, если они не были выбраны из списка:
$( "#tags" ).change(function(){
if($(this).attr('data-select')!='true'){
$(this).val('');
}
});
Посмотреть на работу можно
тут.