0

jQueryオートコンプリートとMVCを使用して、ドロップダウンリストに一連の列名を入力しています。

ユーザーがフォームのDropDownBoxの値を変更するたびに、オートコンプリートボックスに入力される新しい列のリスト(配列として、JSON結果にラップされたもの)を返すようにコントローラーに要求します。

私の問題は、オートコンプリートが単語を区別せず、代わりにc、h、a、r、a、c、t、e、rで文字を区別することを主張することです。とても迷惑です。コードは次のとおりです。

function PopulateColumnsList(list) { 
    $(".columnDropdown").setOptions({ data: list });
}

$(document).ready(function() {
    $(".columnDropdown").autocomplete("", {
        width: 320,
        max: 14,
        highlight: false,
        minChars: 0,
        scroll: true,
        scrollHeight: 300
    });

    $("#Data").change(function() {
        $.ajax({
            url: "/Home/ColumnNamesForDataSelect",
           type: "GET",
           data: { DataSelectID: parseInt($('#Data').val()) },
            success: PopulateColumnsList
       });
  });

});

Getはこの応答を返します:

["メモ"、"バランス"]

Butmy AutoCompleteは、これらのそれぞれを2文字ではなく1文字で表示します:メモ、バランス。サンプルコードが結果を返す同様の方法を示しているので、これは正しいと思いました。

何か案は?

前もって感謝します。

4

4 に答える 4

1

あなたが望むものの例を示すことは可能ですか?私は100パーセントをフォローしていません。

私のオートコンプリートは、ユーザーがテキストボックスに入力を開始するだけで、入力されている文字を確認し、その結果で可能な単語を返します。

私がそれをしている方法はこれです:

// JavaScript file
$("#id").autocomplete("AutoFill", { delay: 1 });


// view
public ContentResult AutoFill(string q)
{
    var result = // go to database and grab all words that Start with whatever is in q.

    string sendBack = null;
    for (int i = 0; i < result.Count; i++)
    {
        sendBack += result[i] + Environment.NewLine;
    }
    return Content(sendBack);
}

それがあなたに役立つかどうかはわかりません。

于 2009-10-22T23:02:37.723 に答える
1

これはおかしな話かもしれませんし、あまり答えではないかもしれませんが、応答の各添え字の項目を繰り返し処理しているように見えるので、応答を次のような別の配列でラップしてみました[["Memo","Balance"]]か?

于 2009-10-22T23:41:44.040 に答える
0

そこにいくつかのjQueryオートコンプリーターがあります。どちらを使用しているのかを教えていただければ助かります。たとえば、http://docs.jquery.com/Plugins/Autocomplete/setOptionsが使用しているsetOptionsのようには見えません

于 2009-12-23T06:30:22.350 に答える
0

さて、あなたはonChange()イベントにバインドしています。これは文字ごとになります。私は似たようなものに出くわし、全体の価値を求めていました。parse()関数をオーバーライドしてXMLパーサー/フォーマットを指定することでこれを処理し、次にresult()関数をオーバーライドして、parse()関数で設定したrow[]データを解析しました。

jQueryオートコンプリートでPOSTをどのように使用しますか?

したがって、基本的に、私は常に選択からのデータと名前を含むrow []を持っています(uはJSONも実行できます)。

また、新しいrow []配列を処理するには、formatItem()関数をオーバーライドする必要があります。

于 2009-10-22T15:52:37.043 に答える