使用jQuery将呈现的HTML插入文本字段

时间:2012-08-09 19:34:26

标签: jquery html textbox

编辑以使我的实际目标更加清晰......

不确定这是否可行而不费力......

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

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

由于

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

建议作者使用div来显示丰富的HTML并使用隐藏的输入来捕获用户的文本。我想我可以使用AJAX来抓取文本字段上的每个击键并用内容更新div,但这是否需要很多开销?在这种情况下,任何其他解决方案都有意义吗?

3 个答案:

答案 0 :(得分:0)

吉姆,我本来只是留下这个评论,但我还不能这样做。我以前必须做类似的事情,并使用轻量级的所见即所得编辑器来做到这一点。对你的情况来说可能有点过头了,但也许有些事情需要调查。

答案 1 :(得分:0)

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

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

我建议您等到捕获一个@符号后跟X个字符然后再填充一个空格。阅读空间后,您可以发送AJAX请求。

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

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

答案 2 :(得分:-1)

请尝试这样。

var text = '<a href="users/username">username</a>'
var o = $(text);