如何让jquery-mentions-input选择用户名后保留@符号?
解决jquery-mentions-input补全后缺少@符号的问题
我之前也碰到过这个小困扰,其实只要调整插件的初始化配置就能轻松搞定~
核心思路是修改插件的提及内容格式化函数,让它在补全时自动带上@符号:
- 找到你初始化
mentionsInput的代码段,默认情况下插件可能只返回纯用户名,我们需要给它加个自定义的格式化规则。 - 添加
mentionsFormat配置项,在这个函数里把@符号和用户名拼接起来返回。
具体代码示例如下:
// 原来的初始化代码可能是这样的 // $('textarea').mentionsInput({ source: '/your-user-data.json' }); // 修改后的代码,添加mentionsFormat配置 $('textarea').mentionsInput({ source: '/your-user-data.json', // 你的用户数据源地址 mentionsFormat: function(mention) { // 根据你实际返回的用户字段调整,比如如果是username就用mention.username return '@' + mention.name; } });
需要注意的是:
- 这里的
mention对象包含了你从数据源返回的用户信息,比如你后端返回的用户字段是username,就把mention.name改成mention.username。 - 如果你的下拉列表显示也需要调整(比如显示@admin而不是admin),可以额外配置
templates里的mentionItem模板,不过你的核心需求是补全后的文本,所以上面的配置就足够了。
内容的提问来源于stack exchange,提问作者Felix
相关产品推荐
相关产品推荐

