1

オートコンプリート フィールドに入力するたびに ajax リクエストが送信されますが、これを行うために書いたコードはありません。コンソールを確認すると、URL に追加されたパラメーター (json) を使用してこのビューをロードしたコントローラーへの 400 GET 要求であることがわかります。私は絶対に困惑しています。

<head>
<script data-main="<?=base_url()?>public/requirejs/main.js" src="<?=base_url()?>public/requirejs/require-jquery.js"></script>
<script>
    requirejs(['a_mod'],
        function(a_mod) {
            $(document).ready(function() {
                var param = [];
                param = $('#elem').attr('value');
                a_mod.foo(param, "#someElem");
            });
        });
<script>

main.js

require(["jquery",
         "jquery-ui"],
         function() {

         }
);

オートコンプリート機能

'foo' : function(param, elementAutocomplete, elementTags) {
        console.log("init ac");
        $(elementAutocomplete).autocomplete({
            source: param,
            minLength: 1,
            select: function (event, ui) {
                event.preventDefault();
                //
            }

        }).data( "autocomplete" )._renderItem = function( ul, item ) {
            return $("<li></li>")
                .data( "item.autocomplete", item )
                .append( '<a>' + item.label  + '</a>' )
                .appendTo(ul);
        }
    },
4

1 に答える 1

2

オートコンプリータのsource属性は文字列です:

param = $('#elem').attr('value');

文字列source、それが URL であることを意味します。

source オプションを指定するだけで、オートコンプリートをカスタマイズして、さまざまなデータ ソースと連携させることができます。データ ソースには次のものがあります。

  • ローカル データを含む配列
  • URL を指定する文字列
  • コールバック

空の配列として初期化されるというだけで、常に配列になるわけではありませvar param = [];ん。値を配列に修正する必要があります。paramparamparam

于 2012-07-05T05:05:48.317 に答える