【问题标题】:twitter typeahead only trigger in the beginning, never trigger again until reload the pagetwitter typeahead 仅在开始时触发,在重新加载页面之前永远不会再次触发
【发布时间】:2013-05-11 14:54:43
【问题描述】:

每当在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 
     }  
  });

【问题讨论】:

    标签: twitter typeahead.js


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      第二个问题,我发现this bug reported in typeahead 提到$('.typeahead').val() 返回undefined。这可能是您的 URL 没有被动态设置的原因。

      改用$('.tt-input').typeahead('val')

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

      【讨论】:

        猜你喜欢
        • 2013-01-18
        • 1970-01-01
        • 2014-08-27
        • 2014-10-02
        • 2019-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多