我在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个字符时,它会加载一些东西。在重新加载期间,用户键入第三个字符,因此它停止仅使用两个字符重新加载操作,并重新开始使用三个字符重新加载。
问题如下:当用户输入两个字符时,它会加载一些东西。在加载过程中,用户删除了一个字符,所以现在它实际上应该停止重新加载dataSource,因为只有一个字符,自动完成应该停止工作。但它没有,它继续加载两个字符的术语并显示结果,即使用户删除了一个字符,所以实际上它应该什么都不显示。
您是否也遇到过这种行为,我该怎么办呢?