我的最终目标是创建一个提前输入(TA),可以在键值设置中用于后续操作。我在初始化基本问题时遇到了问题。
我有一张超过50M地址的表格。我意识到这对TA来说太过分了,所以我最初的想法是通过zipcode分割数据集,这可以减少大约6K-10K的可能性。为此,我有以下代码:
var addresses = new Bloodhound({
datumTokenizer: function (datum) {
return Bloodhound.tokenizers.whitespace(datum.value);
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: {
url: "http://live2.offrs.com/buyerherodev/data/addressTA.cfm?zip="+zip,
cacheKey: "change here!"
}
});
$('.typeahead').typeahead(null, {
name: 'addresses',
source: addresses,
display: 'Address',
});
值得注意的是,zip由URL GET Variable传递。在我的例子中,我使用的是20001
JSON返回格式为:[{" ParcelID":"","地址":""},{& #34; ParcelID":"","地址":""}]
我需要可以搜索地址,并且选择ParcelID存储在值中以进行进一步操作。
HTML:
<div id="menu">
<input tabindex="-1" spellcheck="false" autocomplete="off" readonly="" style="position: absolute; top: 20px; left: 0px; border-color: transparent; box-shadow: none; opacity: 1; background: rgb(255, 255, 255) none repeat scroll 0% 0%;" class="form-control typeahead tt-hint" type="text">
<input dir="auto" style="position: relative; vertical-align: top; background-color: transparent;" spellcheck="false" autocomplete="off" id="address" class="form-control typeahead tt-input" placeholder="Locate by Address..." type="text">
<pre style="position: absolute; visibility: hidden; white-space: pre; font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; word-spacing: 0px; letter-spacing: 0px; text-indent: 0px; text-rendering: optimizelegibility; text-transform: none;" aria-hidden="true"></pre>
<span style="position: absolute; top: 100%; left: 0px; z-index: 100; display: none; right: auto;" class="tt-dropdown-menu">
<div class="tt-dataset-states"></div>
</span>
<div id= "fulldata"></div>
</div>
非常感谢任何帮助。 非常感谢