我正在使用jQuery自动完成
$(function() {
var availableTags = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
];
$( "#tags" ).autocomplete({
source: availableTags
});
});
虽然我想要做的是摆脱availableTags并使它在div.post h3.username中搜索并从那里获取用户名。另外我想用这个textarea这可能吗?
接下来的问题是,当你第一次写@时,只有@T这样的用户能够显示所有的T用户才有可能使它成功吗?
答案 0 :(得分:0)
如果你想在“div.post h3.username”中使用你想要使用的每个用户名,那么你必须创建一个包含所有用户名的列表(类似于你想要删除的用户名)但更多信息如果你想要更多帮助,那么就需要了解这些名称如何包含在该元素中。
至于使用@来检索用户名,取决于你想要什么。例如,如果您坚持必须在书面文本旁边出现一个包含建议用户名的新框,那么textareas就不可能。这是因为没有跨浏览器解决方案来本地化您正在编写的位置的坐标。您必须使用具有contenteditable属性的div,而不是textarea。但是,如果您愿意将这些用户名包含在textarea下面的另一个div中,那么这很可能。如果你想描述你的期望,也许我可以提供一些代码。
但您可能希望更喜欢this种自动填充功能。
答案 1 :(得分:0)
如果您想做一些奇特的完成,例如根据内容从一个列表或另一个列表中搜索,您将需要执行自定义搜索功能。而不是source: availableTags
你会做像
source: function(request, response) { .... }
有关如何编写该函数的更多详细信息,请参阅http://api.jqueryui.com/autocomplete/,但这将为您提供解析@符号等所需的灵活性。
答案 2 :(得分:0)
动态生成标签列表非常简单。而不是为source:
选项提供数组,而是提供一个搜索DIV并返回匹配的所有标记的函数。
由于源函数可以查看用户输入的内容,因此可以在输入中搜索以@
开头的单词,并在查找完成时使用该单词。