每当输入单词进入twitter预先输入时,它应该允许我远程查询城市。但是,当我第一次输入单词时,它会立即触发。但是在第一次之后,无论我输入多少类型,它都不会再次触发。
更重要的是,url:'/city?n='+$('.typeahead').val()
,服务器总是在'/ city?n ='上接收带url的请求,所以看起来似乎是$('。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
}
});
答案 0 :(得分:1)
尝试使用typeahead.js%QUERY通配符发送查询
$('.typeahead').typeahead({
remote:{
url:'/city?n=%QUERY',
timeout: 2000,
cache: 84000,
rateLimitWait: 1000
}
});
答案 1 :(得分:0)
第一个问题:在第一次查询之后你的预先输入不起作用的原因是因为你可能在服务器端或客户端上犯了一个错误,导致页面崩溃。如果您的请求每次都在进行,并且服务器是否正在处理每个请求,请查看控制台。
对于您的第二个问题,我发现this bug reported in typeahead提到$('.typeahead').val()
返回undefined
。这可能是您的URL未动态设置的原因。
尝试$('.tt-input').typeahead('val')
。
.tt-input
是由typeahead插件插入的类。