0

我正在實現Jquery UI自動完成。我有以下代碼。.autocomplete不是函數

的application.js

$(function() { 
     function log(message) { 
      $("<div/>").text(message).prependTo("#log"); 
     } 

     $("#tags").autocomplete({ 
      source : function(request, response) { 
       $.ajax({ 
        url : "/projectlist", 
        dataType : "json", 
        data : { 
         style : "full", 
         maxRows : 12, 
         term : request.term 
        }, 
        success : function(data) { 
         var results = []; 
         $.each(data, function(i, item) { 
          var itemToAdd = { 
           value : item, 
           label : item 
          }; 
          results.push(itemToAdd); 
         }); 
         return response(results); 
        } 
       }); 
      } 
     }); 
    }); 

項目控制器

def project_list 
    list=Project.all.map{|i|i.project_name} 
    arr= [].concat(list.sort{|a,b| a[0]<=>b[0]}).to_json 
    render :json =>arr 
    end 

_form.html.erb

<input id = "tags"/> 

的routes.rb

match '/projectlist' => 'projects#project_list' 

什麼我上面的代碼應該做的是,清單項目。不過,我在Firebug中遇到了以下錯誤。

$("#tags").autocomplete is not a function 
[Break On This Error] source : function(request, response) { 

我也曾嘗試下面的例子JQuery Ui Autocomplete並沒有運氣,並得到了同樣的錯誤:S

+7

通常是不加載jquery ui js文件的結果。確保你已經加載了jquery核心和jquery ui js文件。 –

+0

是包含在你的html中的jQuery-UI? – apneadiving

+0

我在我的_form.html'<%= javascript_include_tag'jquery','jquery-ui-1.8.14.custom.min'%>'中有以下內容,仍然收到相同的錯誤 – David

回答

3

我相信你的問題是,你包括(在_form部分)在視圖的BODY jquery的&的jQuery UI的文件。當您調用javascript_include_tag :defaults時,您可能還會在頭中加載application.js(可能是在您的應用程序佈局中)。相反,你應該調用jQuery和UIW文件之前您稱爲默認值。或者,更好的是,通過在config文件夾中編輯application.rb文件,將它們包含在默認值中。

0

看來,雖然你已經包括jQuery UI的,它沒有被加載。檢查您的瀏覽器控制檯的JavaScript錯誤。如果您使用的是Chrome或Safari,則開發人員工具的網絡選項卡可能表示jquery ui文件未加載。

0

如上面在評論中所述,當jquery ui文件未正確加載時,通常會出現此錯誤。

使用普通的HTML標籤先引用它們:

<script type="text/javascript" src="Content/jquery_core.js"></script> 
<script type="text/javascript" src="Content/jquery_ui.js"></script> 

...並確保UI文件前核心鏈接文件,如上。反轉訂單也會導致錯誤。

0

看來,我收到此錯誤的原因是因爲我在應用程序佈局文件中的'jquery'和'jquery-ui-1.8.14.custom.min'的排序。感謝您的迴應。

+2

而不是將其作爲「答案」添加,這將更適合作爲幫助您的答案的「評論」。如果答案對你有幫助,你應該點擊綠色的勾號,以便他們得到rep推動,其他用戶知道哪個答案是正確的 – Gareth

相關問題