无论何时在twitter上输入文字,它都应该允许我远程查询城市。然而,当我第一次输入单词时,它立即触发。但在第一次之后,不管我在前面输入多少,它再也不会触发了。
更重要的是,url:'/city?n='+$('.typeahead').val()
,服务器总是接收url在'/city '上的请求?N = ',所以看起来$('.typeahead').val()不起作用,尽管输入文件中有值。
<input class="typeahead" name="city" type="text" style="width:400px" placeholder="Search cities..." >
$('.typeahead').typeahead({
remote:{
url:'/city?n='+$('.typeahead').val()
,timeout: 2000
,cache:84000
,rateLimitWait:1000
}
});
尝试使用typeahead.js %QUERY通配符发送查询
$('.typeahead').typeahead({
remote:{
url:'/city?n=%QUERY',
timeout: 2000,
cache: 84000,
rateLimitWait: 1000
}
});
第一个问题:在第一个查询之后,您的预输入不工作的原因是因为您可能在服务器端或客户端犯了错误,导致页面崩溃。查看控制台是否每次都发出请求,以及服务器是否正在处理每个请求。
对于你的第二个问题,我发现这个bug报告在打字前提到$('.typeahead').val()
返回undefined
。这可能是你的URL没有被动态设置的原因。
试试$('.tt-input').typeahead('val')
。
.tt-input
是typeahead插件插入的类。