0

编辑以使我的实际目标更明确...

不知道这是否可能没有很多努力......

我有一个文本字段,我的用户将在其中输入评论。我想通过在他们的名字前面加上 @ 符号来启用标记用户。我整理了一些 jQuery 函数来轮询文本字段,等到输入 @ 符号,然后使用正则表达式获取 @ 符号后的文本并返回匹配用户的列表。这一切都运作良好。

当用户选择其中一个结果时,我的问题就出现了——我想用某种格式化文本替换文本字段中的“@username”。目标是提供一种在视觉上区分文本字段中的用户名的方法,以便用户知道它被正确地处理为标签。有没有办法在文本字段中使用任何类型的格式?或者是否有另一个我可以使用的表单元素支持这一点?

谢谢

更新: 四处搜索,我发现了这个问题:jQuery textbox and html

建议该作者使用 div 来显示丰富的 HTML,并使用隐藏的输入来捕获用户的文本。我想我可以使用 AJAX 来抓取文本字段上的每个按键并使用内容更新 div,但这会产生很多开销吗?在这种情况下还有其他可行的解决方案吗?

4

3 回答 3

0

吉姆,我本来想把这个作为评论,但我还不能这样做。我之前不得不做类似的事情,并使用轻量级的所见即所得编辑器来做到这一点。对于您的情况来说,这可能有点矫枉过正,但也许需要调查一下。

于 2012-08-09T19:54:25.287 回答
0

您对问题的更新是 100% 正确的。

捕获击键绝对是正确的方法,但是您实现它的方式将决定开销。

我建议等到您捕获一个 @ 符号,然后是 X 个字符,然后是一个空格。一旦你阅读了空间,你就可以发送一个 AJAX 请求。

除非用户输入一百万个 @ 标签,否则我无法想象这是很多请求。

请记住,某些应用程序每秒轮询服务器几次,这会少得多。

于 2012-08-09T19:56:42.930 回答
-1

请尝试这样。

var text = '<a href="users/username">username</a>'
var o = $(text);
于 2012-08-09T19:45:07.703 回答