Передача данных Twitter Typeahead

Я использую пакет twitter typeahead. У меня есть такой код:

   var results = new bloodhound({...}) 
   //results is a map in json with the keys ID and displayName. It's  grabbed by ajax call.

    $('#element').typeahead({
    ...
    {
      name: 'Results',
      displayKey: 'displayName',
      source: results.ttAdapter(),
    }...

Это работает очень, очень хорошо. Результаты заполняются по мере того, как пользователи вводят текст. Однако у меня есть одна проблема: когда пользователь нажимает «отправить», значение, которое мне нужно получить, — это не отображаемое имя, а идентификатор.

Если пользователь вводит «Экзамен», скажем, карта результатов выглядит так: {"id":"100","displayName":"Example1"}. Они нажимают «Пример1», и пример1 переходит в текстовое поле. Однако, когда пользователь нажимает «Отправить», я хочу, чтобы «100» исходило от этого элемента, а не «Example1». Это возможно?


person Jeremy    schedule 05.02.2014    source источник


Ответы (1)


Вы можете использовать выбранный обработчик typeahead

.on("typeahead:selected", function(event, item) {
    $("#hiddenInputToSubmit").val(item.id);
    return;
}

Может быть, это может сработать для вас?

person Mutmatt    schedule 06.02.2014