0

每当在twitter typeahead中输入文字时,它应该允许我远程查询城市。但是,当我第一次输入文字时,它会立即触发。但是在第一次之后,无论我在预输入中输入多少,它都不会再次触发。

更重要的是, 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 
     }  
  });
4

2 回答 2

1

尝试使用 typeahead.js %QUERY 通配符发送查询

$('.typeahead').typeahead({
    remote:{
        url:'/city?n=%QUERY',
        timeout: 2000,
        cache: 84000,
        rateLimitWait: 1000 
    }  
});
于 2013-07-24T11:17:59.893 回答
0

第一个问题:第一次查询后您的预输入不起作用的原因是您可能在服务器端或客户端犯了错误,导致页面崩溃。查看控制台是否每次都发出您的请求以及服务器是否正在处理每个请求。

对于您的第二个问题,我发现在 typeahead中报告了这个 bug,它提到了$('.typeahead').val()返回undefined。这可能是您的 URL 没有被动态设置的原因。

试试吧$('.tt-input').typeahead('val')

.tt-input是由 typeahead 插件插入的类。

于 2015-07-02T19:57:21.310 回答