首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery.mention默认文本

jquery.mention默认文本
EN

Stack Overflow用户
提问于 2017-07-04 06:01:22
回答 1查看 924关注 0票数 1

我正在尝试实现jquery.mentions,以便在系统中输入@符号时向用户提供建议。

使用Ajax查询填充列表后,一切都运行正常。

然而,对于编辑现有的评论,我正在努力。

我已将默认文本设置为先前生成的有效值,但它不能正确显示。

呈现的值是

代码语言:javascript
复制
@[Peter Jones](contact:200)

它显示为Peter Jones

如果我将其设置为默认文本,它将显示为@Peter Jones (显示@符号)

这是一个bug吗?有没有人有办法?

我的代码如下

代码语言:javascript
复制
$(function () {

    $('textarea.mention').mentionsInput({
        defaultValue  : '@[Peter Jones](contact:200)',
        onDataRequest:function (mode, query, callback) {
            $.getJSON('Ajax/GetUserTags.php', function(responseData) {
            responseData = _.filter(responseData, function(item) { return item.name.toLowerCase().indexOf(query.toLowerCase()) > -1 });
            callback.call(this, responseData);
            });
        }
    });

    $('.get-syntax-text').click(function() {
      $('textarea.mention').mentionsInput('val', function(text) {
        alert(text);
      });
    });

    $('.get-mentions').click(function() {
      $('textarea.mention').mentionsInput('getMentions', function(data) {
        alert(JSON.stringify(data));
      });
    }) ;


  });

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-04 06:22:44

我查看了jquery.mentionsinput并调整了resetInput函数。

在设置newMentionText时,我删除了@符号的Match1元素。

代码语言:javascript
复制
    function resetInput(currentVal) {
        mentionsCollection = [];
        var mentionText = utils.htmlEncode(currentVal);
        var regex = new RegExp("(" + settings.triggerChar + ")\\[(.*?)\\]\\((.*?):(.*?)\\)", "gi");
        var match, newMentionText = mentionText;
        while ((match = regex.exec(mentionText)) != null) {
            //alert(match[0] + "\n" + match[1] + "\n" + match[2]);
            //newMentionText = newMentionText.replace(match[0], match[1] + match[2]);
            newMentionText = newMentionText.replace(match[0], match[2]);
            mentionsCollection.push({ 'id': match[4], 'type': match[3], 'value': match[2], 'trigger': match[1] });
        }
        elmInputBox.val(newMentionText);
        updateValues();
    }

使用多个标签进行了测试,所有工作正常。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44894358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档