2015-01-22 6 views
1

Я использую twitter typeahead, чтобы предлагать список книг пользователям на странице поиска. Все работает так, как ожидалось, но теперь я хотел бы добавить еще одно значение в скрытое поле.Twitter typeahead hidden field

Большинство учебных уроков, на которые я смотрю, выглядят устаревшими.

Форма моего html заключается в следующем:

<form id="search" action="<?php echo URL; ?>books/itemView?id=" method="post"> 
<input type="text" name="search" class="typeahead" id="demo"/> 
<input type="text" name="isbn" type="hidden" class="typeahead" id="isbn"/> 
<input type="submit" value="Submit" style=""> 
</form> 

Я могу получить список предложений из моего json-файла. Я также могу щелкнуть один из них и выбрать его. Это помещает id в поле ввода. Я также хотел бы разместить isbn в скрытом поле, как это возможно.

My JS находится ниже;

$(document).ready(function() { 
var url = 'http://localhost/logintest/'; 

var books = new Bloodhound({ 
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('title'), 
    queryTokenizer: Bloodhound.tokenizers.whitespace, 
    limit: 3, 
    prefetch: { 
    url: url+'books.json', 
    ttl: 0, 
    filter: function(list) { 
     return $.map(list, function(book) {       
     return { 
     id: book.id, 
     title: book.title, 
     author: book.author, 
     isbn: book.isbn 
     }; 
     }); 
    } 
    } 
}); 

books.initialize(); 

$('.demo .typeahead').typeahead(null, { 
    displayKey: 'id', // displays the id in search bar once selection made 
    engine: Handlebars, 
    templates: { 
    header: '<h1>Name</h1>', 
    empty: [ 
     '<div class="empty-message">', 
     'no results found', 
     '</div>' 
    ].join('\n'), 
    suggestion: Handlebars.compile(
     <strong>{{title}}</strong> 
    }, 
    engine: Handlebars, 
    source: books.ttAdapter() 
}); 
}); 

ответ

3

OK оказывается, это ответ, добавьте это ниже функции машинописного

$('input.query').on('typeahead:selected', function (e, datum) { 
console.log(datum['empID']); 
}); 

Изменить EmpId все, что вы хотите, чтобы войти.