2013-05-11 38 views
0

每当将单词输入到twitter类型中时,它应该允许我远程查询城市。但是,当我第一次键入单词时,立即触发。但在第一次之后,不管我输入多少,它都不会再次触发。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 
    } 
    }); 

回答

1

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

$('.typeahead').typeahead({ 
    remote:{ 
     url:'/city?n=%QUERY', 
     timeout: 2000, 
     cache: 84000, 
     rateLimitWait: 1000 
    } 
}); 
0

第一个问题:为什么你的预输入不会在第一次查询后工作的原因是因为你可能已经做出了服务器端或客户端发生错误,导致页面崩溃。如果您的请求每次都发出,并且服务器正在处理每个请求,请查看控制台。

关于第二个问题,我发现this bug reported in typeahead是提到$('.typeahead').val()回报undefined。这可能是您的网址未被动态设置的原因。

尝试$('.tt-input').typeahead('val')改为。

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

相关问题