当前位置: 首页 > 面试题库 >

文本区域的Twitter风格自动完成

锺离德运
2023-03-14
问题内容

我正在寻找一个Javascript自动完成实现,其中包括以下内容:

  • 可以在HTML文本区域中使用
  • 允许键入常规文本而无需调用自动完成功能
  • 检测@字符并在键入时开始自动完成
  • 通过AJAX加载选项列表

我认为这与Twitter在推文中进行标记时的操作类似,但是我找不到很好的,可重用的实现。
jQuery的解决方案将是完美的。

谢谢。


问题答案:

我找不到任何完全符合我的要求的解决方案,因此得到了以下结果:

我使用jQuery keypress()事件来检查用户是否按下了@字符。
在这种情况下,将使用jQuery UI显示模式对话框。此对话框包含一个自动完成的文本字段(可以在此处使用许多选项,但我建议使用jQuery
Tokeninput

当用户在对话框中选择一个选项时,会将标签添加到文本字段,然后关闭对话框。

这不是最优雅的解决方案,但它可以工作,并且与我的原始设计相比,不需要额外的按键。

编辑
因此,基本上,我们有一个大文本框,用户可以在其中输入文本。他应该能够“标记”用户(这只是意味着#<userid>在文本中插入)。我附加到jQuery
keyup事件,并@使用(e.which == 64)来显示显示模式的文本字段来检测字符,以选择要标记的用户。

解决方案的实质就是带有jQuery
Tokeninput文本框的模式对话框。当用户在此处键入时,将通过AJAX加载用户列表。请参阅网站上的示例以了解如何正确使用它。当用户关闭对话框时,我将选定的ID插入大文本框中。



 类似资料:
  • 问题内容: 我有一个带有滚动条的文本区域。我会定期添加新的文本行。我希望文本区域在添加新行时自动滚动到最底部的条目(最新条目)。我该怎么做? 问题答案: 看看DefaultCaret的updatePolicy属性:它可能会做您想要的 一个选项很好的总结罗布(@camickr)

  • 问题内容: 我的页面上有一个textarea html元素,该元素通过ajax重新加载。每次返回整个textarea不仅是其内容,而且内容会随着时间增长。连同textarea一起,我返回了以下javascript: 在firefox 3.0.7中,这会将滚动条放在textArea的底部,使我可以看到最新的输出。但是在IE 7中,我看到了不同的行为。滚动条将按预期的内容向下移动,但是一旦内容较大,则

  • 问题内容: 有关于这个另一个线程,我已经试过。但是有一个问题:删除内容不会缩小。我找不到任何将其缩小为正确大小的方法-该值会以的完整大小返回,而不是其内容的大小。 该页面上的代码如下: 问题答案: 这对我有效(Firefox 3.6 / 4.0和Chrome 10/11): _如果您想在jsfiddle _上尝试它,它以一行开始,并且仅增长所需的确切数量。可以使用一个,但是我想写一些这样的东西(在

  • 问题内容: 我有一个文本框,我想在其上应用自动完成功能。我正在使用以下插件: 自动压缩 它可以正常工作,但是一旦我将其与AngularJS结合使用,它就会停止工作: 我有以下代码: 和jfiddle的链接如下: 小提琴 如您所见,虽然没有Angular,但自动完成功能不起作用。 有人可以帮忙吗? 问题答案: 为您服务的傻瓜 http://plnkr.co/edit/5XmPfQ78vRjSrxE0

  • 问题内容: 是否有任何可以用来实现自动完成文本框的现成的Java Swing组件? 问题答案: 这是一个没有下拉选择的自动补全示例。仅当找到唯一匹配项时,它才会自动为您完成。补全会自动插入文本字段并选择。类似于Safari的地址字段的工作方式。 可以扩展该解决方案以提供选项列表,但是这并不是我的要求的一部分。 更新 我使用原始代码丢失了域。现在可以在github上访问它:https : //git

  • 我在javafx文本区域有一个问题:当我聚焦文本区域时,边框被应用...那还可以。 但是当我用滚动条手柄拖动时,文本区域边框焦点会丢失。 见下图: