0

次のようなオートコンプリートコードがあります

   $("#city").autocomplete({

    source: function( request, response ) {
        term=request.term;
        $.ajax({
            url: "/autocomplete/city/"+term,
            dataType: "html",
            async:false,
            cache:true,
            success: function (data) {
                alert(data);
                response(data);
            }

        });                 
    }
});

アラート データは正しいデータを生成します。デリーコルカタなどの形式で。しかし、response(data) はデータを異なる行にあるすべての文字として表示します

誰かがエラーを説明したり、正しく行う方法を教えてくれますか?

4

1 に答える 1

1

古いバージョンの jquery (<= 1.7) を使用していると思いますか? そうであれば、この方法で取得できます。配列をに渡す必要がありますresponse。新しいバージョンのjqueryは、反復に使用するとエラーをスローしますfor..in。古いバージョンでは、配列として渡したかのように for ループを使用して反復すると、文字列が文字に分割されるため、動作が発生します。

これを試して:

success: function( data ) {

    response( [data]);
}

しかし、データがコンマで区切られた複数の値の文字列である場合は、次のようにすることができます。

success: function( data ) {

    response(data.split(','));
}

これを正しく使用する方法が記載されているこのドキュメントをご覧ください。そして、デモ用のサンプルFiddleです。

于 2013-06-26T19:26:55.793 に答える