1

MVC3 のリモート データソースで jQuery のオートコンプリートを使用しています。コントローラーに次のようなアクションがあります。

public ActionResult AutoCompleteSource(string term)
{
    var result = // load some values filtered by term
    return Json(result, JsonRequestBehavior.AllowGet);
}

cshtml では、次のようにオートコンプリートを使用します。

var dataSource = '@Url.Action("AutoCompleteSource", "someControllerName");
$("#inputId").autocomplete(
    {
        minLength: 2,
        source: dataSource
    });

これは機能するため、ユーザーが入力テキストボックスで何かを変更すると、常に dataSource がリロードされます。

2文字を入力すると、何かが読み込まれます。リロード中にユーザーが 3 番目の文字を入力すると、2 文字だけでアクションのリロードが停止し、3 文字でリロードが再開されます。

問題は次のとおりです。ユーザーが 2 文字を入力すると、何かが読み込まれます。ロード中にユーザーが 1 文字を削除すると、実際には dataSource のリロードが停止するはずです。これは、1 文字だけでオートコンプリートが機能しなくなるためです。ユーザーが 1 文字を削除しても、2 文字の用語の読み込みが続行され、結果も表示されるため、実際には何も表示されません。

あなたもこの動作に遭遇しましたか?どうすればよいですか?

4

0 に答える 0