Я пытаюсь разрешить выбор нескольких параметров с помощью автозаполнения jQuery, примененного к полю textarea. Приведенный ниже код отлично работает , за исключением , что клавиша со стрелкой вниз не запускает отображение параметров автозаполнения и их можно перемещать с помощью клавиш со стрелками. Эта функциональность отлично работает при применении к обычным текстовым полям ввода (т.е. не к текстовой области).
Так что мне интересно, может ли кто-нибудь сказать мне, как заставить это работать для текстовой области?
multiselect: {
split: function (val) {
return val.split(/;\s*/);
},
myField: {
myOptions : [],
extractLast : function(term) {
return multiselect.split(term).pop();
},
autocomplete_options : {
appendTo : 'body',
minLength : 0,
source : function(request, response) {
response($.ui.autocomplete.filter(multiselect.myField.myOptions, multiselect.myField.extractLast(request.term)))
},
focus : function() { return false; },
select : function(e, ui) {
var terms = multiselect.split(this.value);
terms.pop();
terms.push(ui.item.value);
terms.push("");
this.value = terms.join("; ");
return false;
},
},
multi_options : function(myOptions)
{
multiselect.myField.myOptions = myOptions;
$('[name=myField]').
autocomplete(multiselect.myField.autocomplete_options)
.on("keydown", function(event) {
// here is where I've added code to handle the down arrow key press
});
},
unbind : function() {
$('[name=myField]').autocomplete("destroy")
}
}
}
Я пробовал множество вещей, пытаясь активировать опции автозаполнения. Добавление приведенного ниже кода к событию keydown было самым близким, что я смог получить, то есть отображением параметров автозаполнения, но я не могу перемещаться по ним с помощью стрелки вниз, как я мог бы для поля ввода текста. Однако стрелка вверх работает .
if (event.keyCode == 40) {
$(this).autocomplete('search', '');
}
Я подозреваю, что мне нужно добавить несколько logi c, чтобы этот logi c не перехватил события стрелки вниз, когда параметры автозаполнения open, но до сих пор ничего из того, что я пробовал с этой целью, не сработало.