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

client/json_list 出力

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

ソースが文字列の場合、それが 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: Autocomplete Tutorial

この方法を使用する場合、データ ソースは要求元のページと同じドメインにある必要があります。

于 2012-08-28T16:46:50.000 に答える