2

私はjQueryとJSONの初心者で、何時間も費やしましたが、それでも問題は解決しませんでした

サーバーからのJSONは有効であり、jsonlit.comで確認されますが、すべてのデータが表示されます(フィルター処理されません)。

serverURI.aspからのJSON

["A. ASRUNADI", "A. MURSYID", "A. RIFANI", "A.Z MAKMUR IS", "ABBAS", "ABDI  IRWANTO"]

私のjquery

$("#keyword").autocomplete({
    source: function(request, response){
       $.getJSON("serverURI.asp", function(data){
           var source = data
           response(source);
       });
    }
});

しかし....jqueryでJSONをvarとして配置すると、その動作は...その間、htmlメタタグですでにutf-8を使用しています

$(function() {
    var availableTags = ["A. ASRUNADI", "A. MURSYID", "A. RIFANI", "A.Z MAKMUR IS", "ABBAS", "ABDI  IRWANTO"];
    $("#keyword").autocomplete({
        source: availableTags
    });
});

次のようにJSONを生成するための私のASP(クラシック)

    dim strResultEMP
strResultEMP = "["
for strEmpCount = 0  to strTotalCountEmp
    strEmpObj = split(strEmpSplit(strEmpCount), "$$$")
        if strEmpCount < strTotalCountEmp then
            strResultEMP = strResultEMP & """" & ucase(strEmpObj(1)) & """" & ", "
        else
        strResultEMP = strResultEMP & """" & ucase(strEmpObj(1)) & """" & ""
        end if

next
strResultEMP = strResultEMP & "]" 
response.write strResultEMP

参考までに、JSON2.aspとJSON UTILを使用していますが、それでも同じです。サーバーの応答をデバッグしてキャッチするには、Firebugを使用します。

4

1 に答える 1

6

サーバー側でフィルタリングを実行したくない場合は、ソースに対してAJAXリクエストを行い、そのソースをオートコンプリートウィジェットに渡す必要があります。

$(function () {
    /* Make the AJAX request once for the source array: */
    $.getJSON("serverURI.asp", function (data) {
        /* Initialize the widget with the data we got back: */
        $("#keyword").autocomplete({
            source: data
        });
    });
});

大量のデータがある場合、これによりユーザーのブラウザの速度が低下する可能性があることに注意してください。アイテムが多い(> 500)場合は、サーバーでフィルタリングを実行することを強くお勧めします。

于 2012-12-19T15:35:06.343 に答える