我想在我正在开发的Sinatra应用程序中做一个增量搜索/实时搜索选项我使用数据映射器作为ORM,使用html和Haml我对红宝石很熟悉,但西纳特拉对我来说是新的。
我想要一个搜索字段,当在搜索字段中键入字符时,显示一个结果列表,这是我们从google所知道的我希望将搜索字段中的字符发送回sinatra应用程序,以执行数据映射器查询,如下sinatra部分所示:

get '/car' do
    @cars = CarDb.all(:reg_nr.like => '#{chars_from_srcBox_id}%')
    haml :car
end

汽车.haml:
!!!
 %html
  %head
    %title Sinatra App
     %link(rel='stylesheet' href='views/style.css')
     %link(href='http://fonts.googleapis.com/css?family=Roboto:400,300' rel='stylesheet' type='text/css')
  %body
    %form{ :class => "formContainer", :action => "", :method => "post"}
      %fieldset
        %ol
          %ul(style="list-style-type:none")
            %li
              %label{:for => ":car_search"} Search Car.:
              %input{:type =>"carData", :name => "car_search", :class => "txtBox", :id=> srcBox}

    %ul(style="list-style-type:none")
      - @cars.each do |c|
        %li
         = "#{c.reg_nr} - #{c.car_make} #{c.car_model}"

我想我需要一些JavaScript/Coffescript将字符从搜索字段发送回Sinatra应用程序??如何将sinatra与javascript链接?
我遇到了Gon Sinatra,这是我需要的吗,还是还有其他更明显的选择?
彼得先生

最佳答案

如果假设“增量搜索”和“自动完成”基本上是相同的,那么尝试将服务器端的Sinatra中的AJAX功能(您可以在answerhere中找到示例)与客户端的JavaScript库结合起来。
以下是其他有趣的客户端库:
在这里您可以找到真正的增量方法,即当建议的单词在input字段typeahead.js中完全预填充时
原生jquery ui组件http://www.pengoworks.com/workshop/jquery/autocomplete.htm
http://jqueryui.com/autocomplete/

10-06 04:59
查看更多