textarea和其他功能的自动完成功能

时间:2012-10-19 22:55:02

标签: jquery

我正在使用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用户才有可能使它成功吗?

3 个答案:

答案 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并返回匹配的所有标记的函数。

由于源函数可以查看用户输入的内容,因此可以在输入中搜索以@开头的单词,并在查找完成时使用该单词。