1

我试图让 jQuery UI 自动完成与 URL 一起工作(因为我正在处理数千条记录,这似乎是正确的解决方案),但我在 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')                                                                                                 
});   

客户端/json_list 输出

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

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

4

2 回答 2

3

你的 javascript 是错误$(this)的,不是指$(".autocomplete-remote"). 它们在同一范围内,因为选项对象不在函数内。

它应该如下所示:

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

或者

var elem = $(".autocomplete-remote");
elem.autocomplete({                                                                                                        
    source :  elemn.attr('data-remote-source')                                                                                                 
});
于 2012-08-28T16:39:21.717 回答
2

还有第3点@jQuery:自动完成教程

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

于 2012-08-28T16:46:50.000 回答