2012-08-28 22 views
1

我想獲得與URL一起工作的jQuery UI自動完成(因爲我正在處理幾千條記錄,這看起來像是正確的解決方案),但我得到了JavaScript錯誤,我找不到原因。jQuery UI自動完成:對象的源不是一個函數,如何使用外部url?

錯誤消息

Uncaught TypeError: Property 'source' of object #<Object> is not a function 
assets/js/plugins/jquery-ui-1.8.22.custom.min.js:45 

HTML表單字段

<input class='autocomplete-remote' name='client_id' data-remote-source='<?= base_url(); ?>/clients/json_list'/> 

的JavaScript

$(".autocomplete-remote").autocomplete({                           
    source : $(this).attr('data-remote-source')                         
}); 

客戶/ json_list輸出

[{ "label" : "John Doe", "value" : "1"}, {"label" : "Jane Doe" : "value" : "2"}] 

我的文檔的理解是,如果來源是一個字符串,將它作爲一個URL,並從該源獲取數據。但這不起作用。

+0

你試過這個例子嗎http://jqueryui.com/demos/autocomplete/#remote-jsonp? – Amitd

+0

@Amitd no,但聽起來像根據文檔不應該是nessecary:「自動完成可以定製爲與各種數據源一起工作,只需指定源選項。數據源可以是:包含本地數據的數組, 一個字符串,指定一個URL,一個回調......「所以我不明白爲什麼這是一個問題。 – GSto

回答

3

您的javascript錯誤$(this)不是指$(".autocomplete-remote")。它們與options對象不在函數內部的範圍相同。

它應該是這樣的:

$(".autocomplete-remote").autocomplete({                           
    source : $(".autocomplete-remote").attr('data-remote-source')                         
}); 

OR

var elem = $(".autocomplete-remote"); 
elem.autocomplete({                           
    source : elemn.attr('data-remote-source')                         
}); 
相關問題