Твиттер Typeahead пользовательский выбор логики - PullRequest
0 голосов
/ 19 декабря 2018

Я использую Twitter Typeahead для генерации предложений.Мой Ajax-запрос возвращает сложный тип данных, который хорошо отображается в разделе предложений.Когда пользователь выбирает одно предложение, я хотел бы сохранить идентификатор элемента в скрытом поле, а имя элемента + цвет в поле ввода.Как я читал в документации, мне пришлось бы переопределить метод отображения в конструкторе Typeahead (или как он там называется в JS), примерно так:

display: function(item) {
   $("#idhiddenfield").val(item.id);
   return item.name + " " + item.color;
}

С этим связаны две проблемыВо-первых, оно срабатывает при появлении предложения, а не при его выборе ( display мне кажется странным, но документация утверждает, что это правильный метод, по моему мнению, его следует выбрать или что-то в этом роде), а также, еслиЯ оставляю поле и нажимаю на него, он запускает Ajax-вызов, который показывает «Результаты не найдены» (потому что комбинация имя + цвет не запрашивается на стороне сервера), что, безусловно, плохо.

Может кто-топомочь мне с этими двумя вопросами?

1 Ответ

0 голосов
/ 19 декабря 2018

Я думаю, что вы неверно истолковали документы здесь.Функция отображения - определить строку, отображаемую в предложении.

Вы можете отреагировать на выбор предложения событием typeahead:select - на элементе input.Например:

$("#typeAheadInput").on("typeahead:select", function(event){ //Your logic here});

Я бы предложил переместить вашу логику в именованную функцию и не использовать встроенную анонимную функцию для лучшей читаемости.

$("#typeAheadInput").on("typeahead:select", yourNamedFunction);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...