隨筆-167  評論-65  文章-0  trackbacks-0
          效果:


          記得以前文章寫過 rails autocomplete 插件的使用方法, 那個是基于 prototype 的, 平時Jquery用的最多。。所以必須用jquery 實現 , 這樣的 demo 網上太多。。。。下面介紹在rails 中的一種solution

          需要的:
          jquery.js
          jquery.complete.js
          jquery.autocomplete.css

          demo :

          View:

          <script>
            $(document).ready(function() {
              $("#recipient").autocomplete("/myaccount/res_message", {
                delay:10,
                minChar: 1,
                multiple: true,
                parse: function(data) {   
                  return $.map(eval(data), function(item) {
                    return {       
                      data: item,
                      value: item.name,
                      result: item.name
                    }
                  });
                },
                formatItem: function(item) {
                  return item.show;
                }
              }).result(function(e, item)
              {       
                $("#recipient").val(item.name);
              });
            });
          </script>
          <p><%= text_field_tag :recipient, :id => 'recipient' %></p>


          解釋:
          #recipient 是對應的 id
          /myaccount/res_message 對應請求的 url
          item是參數
          name 和 show 是 返回的變量

          action:
            def res_message

              key = params[:q] if params[:q]
              @result = ClientInfo.get_login_name(key, '' , 'key')
             
              respond_to do |format|
                format.js # default : res_message.js.erb
              end
            end


          解釋 params[:q]  q 是默認向后臺發送的關鍵字查詢 參數, 并且默認的limit 是10 條數據

          view:res_message.js.erb

          <% if @result -%>
          <% i=0 %>[
            <% for result in @result %>
               <% if i==0 %>
              {name:"<%= result.login_name %>",show:"<%= result.login_name + " " %>" + "<%= result.sure_name.nil? ? " " : result.sure_name + " " %>"}
              <% else %>
                ,{name:"<%= result.login_name %>",show:"<%= result.login_name + " " %>" + "<%= result.sure_name.nil? ? " " : result.sure_name + " " %>"}
              <% end %>
                <% i+=1 -%>
            <% end -%>]
          <% end -%>

          解釋: 該view 是返回的數據,返回的是一個JSON數組

          具體詳細的可以參考:
          http://docs.jquery.com/Plugins/Autocomplete
          http://view.jquery.com/trunk/plugins/autocomplete/demo/


           



          write by feng
          posted on 2009-09-04 14:40 fl1429 閱讀(1560) 評論(2)  編輯  收藏 所屬分類: RailsJquery

          評論:
          # re: rails jquery autocomplete 2011-10-12 09:02 | 阿宅
          大哥你這個是rails幾呀???  回復  更多評論
            
          # re: rails jquery autocomplete 2012-02-23 10:27 | dsad
          da  回復  更多評論
            
          已訪問數:
          free counters
          主站蜘蛛池模板: 光山县| 杭锦旗| 东乌珠穆沁旗| 新闻| 兴隆县| 清涧县| 工布江达县| 威信县| 交城县| 隆安县| 绥德县| 高雄县| 郧西县| 开阳县| 临猗县| 亳州市| 邹城市| 仁布县| 涿鹿县| 四子王旗| 马鞍山市| 诸城市| 吉林省| 鸡东县| 抚顺县| 延庆县| 宁陕县| 枣阳市| 扎赉特旗| 观塘区| 萨嘎县| 台安县| 昆明市| 保德县| 襄樊市| 锦屏县| 武邑县| 新干县| 临清市| 民丰县| 乌拉特前旗|