jQuery UI Autocomplete:对象的源不是函数,如何使用外部url?

时间:2012-08-28 15:51:38

标签: jquery-ui jquery-autocomplete

我正在尝试使用URL处理jQuery UI自动完成(因为我正在处理数千条记录,这似乎是正确的解决方案),但我在JavaScript中遇到错误,我无法弄清楚原因。

错误消息

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')                                                                                                 
});   

clients / json_list输出

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

我对文档的理解是,如果source是一个字符串,它将被用作URL并从该源获取数据。但这不起作用。

2 个答案:

答案 0 :(得分:3)

您的javascript错误$(this)未引用$(".autocomplete-remote")。它们与选项对象不在函数内的范围相同。

它应该是这样的:

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

OR

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

答案 1 :(得分:2)

同样指向3 @ jQuery: Autocomplete Tutorial

  

如果使用此方法,则数据源必须与其位于同一域中   请求页面。