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 文字の用語の読み込みが続行され、結果も表示されるため、実際には何も表示されません。
あなたもこの動作に遭遇しましたか?どうすればよいですか?