<br> jQuery autoComplete escape issue

时间:2016-09-01 05:39:57

标签: javascript jquery-plugins autocomplete

我在回购问题中问过,但我没有得到答案。 https://github.com/Pixabay/jQuery-autoComplete/issues/65

报价列在下拉列表中。但是当被选中时我会得到引号问题(如gif所示)。我无法弄清楚它是如何被添加到代码中的文本输入中的。在JS中还不够强大。

我无法在此处粘贴脚本中的所有代码。我希望有人能够快速看一下repo,并指出我正确的方向。

这是其初始字符串被转义的地方

    renderItem: function (item, search){
        // escape special characters
        search = search.replace(/[$-\/?[-^{|}]/g, '\\$&');
        var re = new RegExp("(" + search.split(' ').join('|') + ")", "gi");
        return '<div class="autocomplete-suggestion" data-val="' + item + '">' + item.replace(re, "<b>$1</b>") + '</div>';
    },

不知道它是从那里开始的,它是如何添加到该文本输入的?怎么能让它再次逃脱。

我知道很多,我花了一天时间试图解决这个问题,但我明天会再次回来。希望有人可以节省5分钟,看看并帮助这个痛苦的新手。

感谢。

2 个答案:

答案 0 :(得分:1)

如果您使用jQuery,则可以使用此功能:

$(selector).text(notEscapedText)

在你的情况下:

renderItem: function (item, search){
    return $('<div class="autocomplete-suggestion" data-val="' + item + '">').text(search);
},

或者:

renderItem: function (item, search){
    var $value = $('<b>').text(search);

    return $('<div>')
        .addClass('autocomplete-suggestion')
        .data('val', item)
        .append($value);
},

答案 1 :(得分:1)

我自己修正了,我确信这是一种邋sl的方式。

return '<div class="autocomplete-suggestion" data-val="' + item.replace("\"", "&quot;").replace("'", "&apos;") + '">' + item.replace(re, "<b>$1</b>") + '</div>';