我正在尝试使用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并从该源获取数据。但这不起作用。
答案 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
如果使用此方法,则数据源必须与其位于同一域中 请求页面。