我正在做一种标签自动完成组合。JQuery自动完成。如果找不到项目,请显示“按Enter键插入自动填充”?
当用户进入一个没有自动完成选项,即“AAA”,我想自动完成向下下降,显示查询“按‘回车’创建‘AAA’的标签。”
我所以基本上无法找到的文档任何东西(我想这需要我做一些黑客行为,但在这样做之前,我想看看是否有人已经做了补丁这一点。)
编辑:
我已经开始在源代码工作,这是我有:
$.ui.autocomplete.prototype._response= function(content) {
/* BUG: when the user clicks "Press Enter to this tag",
* the tag "Press enter to create this tag"
* gets created
*/
console.log(content);
if (content.length == 0) {
content = [{ 'label': "Press Enter to create this tag.", "value": -1 }];
}
if (!this.options.disabled && content && content.length) {
content = this._normalize(content);
this._suggest(content);
this._trigger("open");
} else {
this.close();
}
this.pending--;
if (!this.pending) {
this.element.removeClass("ui-autocomplete-loading");
}
};
这工作正常。但是,当用户点击“按Enter键到该标签”时,标签“按回车键创建该标签”就会被创建。我如何解决这个问题的原始查询?
您的用户是否真的关心标签是否存在?对于大多数情况下,我会说不。一般来说,创建新标签对用户来说是透明的,似乎更加用户友好。我假设你的自动完成列表会在从结果中选择它时添加一个标签,但即使没有找到标签,它仍然可以使用“添加标签”按钮或类似的东西。然后,如果没有找到结果或者用户不想点击自动填充选项,他们仍然可以添加标签。通过点击提交(或按回车)。只是一个想法。 – 2011-03-04 21:54:54
@Jeremy我认为最简洁的方式就是告诉用户输入并输入。如果用户键入存在的东西,它将显示,但是,如果查询未找到,一个空框可能会混淆用户。我只想在自动完成搜索框中显示“按'输入'创建此标记' – disappearedng 2011-03-04 22:03:59
我的观点只是如果有一个提交按钮,它将显示为只有一个提交给用户的输入,我不认为是混乱。但这仅仅是我的看法,我没有做过重点小组来支持它! :) – 2011-03-04 22:41:49