我已經開始使用Typeahead.js,並且正在努力想出一種允許用戶鍵入和搜索公司名稱的方法,一旦選擇輸入關聯的公司代碼。使用TypeAhead使用不同於JSON數據的值而不是displayKey使用Typeahead
以.json文件:
[{
"company_name": "Facebook",
"code": "fb",
}, {
"company_name": "Google",
"code": "goog",
}, {
"company_name": "Yahoo",
"code": "yhoo",
}, {
"company_name": "Apple",
"code": "aapl",
}, {
"company_name": "Royal Mail",
"code": "rmg.l",
}]
.js文件腳本:
var stocks = new Bloodhound({
datumTokenizer: function(d) {
return Bloodhound.tokenizers.whitespace(d.code);
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
limit: 3,
prefetch: {
url: 'javascripts/stockCodes.json',
filter: function(list) {
return $.map(list, function(stock) {
return {
code: stock
};
});
}
}
});
stocks.initialize();
$('.typeahead').typeahead(null, {
name: 'stocks',
displayKey: 'code',
source: stocks.ttAdapter()
});
目前,這只是顯示的代碼列表,當用戶在輸入字段。但是,我想知道是否有辦法允許他們在code
上進行搜索,但是一旦選定,文本框中的值將變爲company_name
?這甚至可以使用這個插件。任何幫助將不勝感激。
謝謝!
通過添加名稱屬性源對象圍繞它的工作你能夠改變你的數據結構? – Tomanow
@Tomanow是的。我只是覺得這個結構很有效率。謝謝 – user1779796
我剛更新了我的答案。現在應該更準確。 – Tomanow