jquery.mention 默认文本
jquery.mention Default Text
我正在尝试实施 jquery.mentions 以在输入 @ 符号时向系统中的用户发出提示。
一切正常,使用 Ajax 查询填充列表。
但是,为了编辑现有的评论,我很费力。
我已将默认文本设置为之前生成的有效值,但显示不正确。
呈现的值为
@[Peter Jones](contact:200)
显示为 Peter Jones
如果我将其设置为默认文本,它将显示为@Peter Jones(显示@符号)
这是一个错误吗?有人有解决办法吗?
我的代码如下
$(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));
});
}) ;
});
我查看了 jquery.mentionsinput 并调整了 resetInput 函数。
设置 newMentionText 时,我删除了 Match[1] 元素,即 @ 符号。
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();
}
使用多个标签进行测试,一切正常。
我正在尝试实施 jquery.mentions 以在输入 @ 符号时向系统中的用户发出提示。
一切正常,使用 Ajax 查询填充列表。
但是,为了编辑现有的评论,我很费力。
我已将默认文本设置为之前生成的有效值,但显示不正确。
呈现的值为
@[Peter Jones](contact:200)
显示为 Peter Jones
如果我将其设置为默认文本,它将显示为@Peter Jones(显示@符号)
这是一个错误吗?有人有解决办法吗?
我的代码如下
$(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));
});
}) ;
});
我查看了 jquery.mentionsinput 并调整了 resetInput 函数。
设置 newMentionText 时,我删除了 Match[1] 元素,即 @ 符号。
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();
}
使用多个标签进行测试,一切正常。