带有触发键的JQuery Tokenizing Autocomplete

时间:2011-09-27 17:36:30

标签: javascript jquery autocomplete jquery-autocomplete jquery-ui-autocomplete

是否有一个很好的解决方案来创建文本字段输入,例如Facebook或Google+状态更新和帖子,其中允许在某些触发键(如“@”或“+”)之后发生令牌化自动完成?

似乎有一些很好的令牌化自动完成插件,但是我试图找到一种方法来调用自动完成,只有在一个术语之前存在键时,否则让用户键入普通的非自动完成文本。 / p>

看起来你可能能够和bind一起破解,但我对JavaScript很陌生,所以如果有一个简单的更优雅的解决方案,我很乐意听到它。

1 个答案:

答案 0 :(得分:1)

使用jquery并不是很困难。首先设置一个类来标识您的输入框。例如:

<input type="text" class="autocomplete" name="the_name" />

然后,您可以简单地捕获keyup事件并检查您需要的密钥。例如,@符号具有键码64

$(".autocomplete").keypress(function(e) {
    if (e.which == 64) {
        // your event handler
    }
});

您可以查看所有活动代码以及有关.keypress()here的更多信息。

您的事件处理程序可以使用jquery.ajax函数向服务器请求填充选择器的数据。

如果要在输入某些文本后自动完成,例如,如果用户写“@tyle”,则必须修改上述代码中的条件,以便写入最后一个单词并检查它是否在开头有@