4

我正在使用jQuery Autocomplete,用户看到以下行为:

  1. 用户开始输入字符串并提出建议
  2. 用户继续输入,直到没有任何建议不再有效(并且下拉菜单消失)
  3. 用户点击标签
  4. 自动完成用无效的先前建议填充该字段,擦除用户输入的内容

有任何想法吗?

这是 Javascript 代码(来自 Django 模板):

$("#id_name").autocomplete("{% url name_autocomplete %}", {
     formatItem: function(data, i, n, value) {
         values = value.split(",,");
         return values[0];
     },
     formatResult: function(data, value) {
         return value.split(",,")[1];
     },
     highlight: false
});
4

1 回答 1

1

您确定所描述的行为正是用户正在做的事情吗?我之所以问,是因为如果您输入一个可自动完成的术语,向下滚动到一个选项,输入足够的内容以创建一个无效的术语,然后非常快速地按 Tab,那么之前突出显示的建议就是“已提交”。当您的行为中添加“步骤 1.5”时,似乎存在竞争条件:“用户按下向下箭头以突出显示建议。”

如果行为确实如您所描述的那样,您可以考虑在 jQuery UI 中使用自动完成功能。您链接到的自动完成版本似乎已被弃用。我对 jQuery UI 自动完成的几种不同实现进行了快速测试,它们似乎没有表现出您描述的行为。

或者,您在https://github.com/agarzola/jQueryAutocompletePlugin链接的版本似乎有更新。错误报告和修复似乎没有很好的记录,但也许他们在更新中解决了您的问题(直接或间接。)

于 2010-11-22T19:47:37.583 回答