2013-12-06 5 views
1

Я использую typeahead в своей базе данных пользователей, и все работает нормально. Тем не менее, поиск, который я выполняю, - это фамилия участника.Bootstrap typeahead добавить значение в скрытое поле

То, что я пытаюсь сделать, - это когда пользователь нажимает, вместо того, чтобы использовать фамилию, которую они ввели в поле, я хочу, чтобы вместо этого он добавлял идентификатор пользователя в поле.

Есть ли способ сделать это?

$('input.query').typeahead({ 
    name: 'query', 
    value: 'lastName', 
    remote: 'jsonUser.php?query=%QUERY', 
    minLength: 3, 
    template: ["<div class='typeahead_wrapper'>", 
       "<img class='typeahead_photo' src='http://localhost/iwebimage.axd?qid={{qid}}'/>", 
       "<div class='typeahead_labels'>", 
       "<div class='typeahead_primary'>{{firstName}} {{lastName}} <small>({{ntid}})</small></div>", 
       "<div class='typeahead_secondary'>{{department}}</div>", 
       "</div>", 
       "</div>", ].join(''), 

    engine: Hogan, 
    limit: 8, 
    valueKey: 'lastName' 
}); 

UPDATE:

Ответ JSON содержит идентификатор пользователя, просто не знаю, как есть плагин использовать другое значение в качестве конечного значения, а затем то, что вы ищете.

ответ

0

EDIT: bootstrap 3 no-longer поддерживает обновление. этот ответ работает только для начальной загрузки 2 машинописных

Overwrite the updater function. и добавить data-provide="typeahead" к входу

$('input.query').typeahead({ 
    updater: function(item) { 
     //item the json object that the user selected 
     return item.id; // set input's value to item.id 
     }, 
     //.... 
)}; 

Html

<input class="query" data-provide="typeahead" /> 
+0

Я использую самозагрузку 3, если это имеет значение, если бы для использования \t $ ('input.query'). on ('typeahead: selected', function (e, datum) { \t console.log (datum ['empID']); \t}); – SBB

+0

приятно, но не должны были, они говорят, чтобы также поставить 'data-обеспечить =" typeahead "на вход, у вас есть это? – roo2

+0

@Eru, что функциональность typeahead не существует в Bootstrap 3 – Dhaulagiri

0

Добавить valueKey: 'empID' к параметрам машинописных и будет значение введено в поиск после выбора пункта из названия:

2

Это то, что сработало для него:

$('input.query').on('typeahead:selected', function (e, datum) { 

    console.log(datum['empID']); 
    }); 

Я также нашел Bootstrap Typeahead updater not working, который рекомендует то же

Примечание: щебет протестующими самозагрузки/typhead и рекомендуются использовать https://github.com/twitter/typeahead.js с бутстрапом 3

Смежные вопросы