我在回购问题中问过,但我没有得到答案。 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分钟,看看并帮助这个痛苦的新手。
感谢。
答案 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("\"", """).replace("'", "'") + '">' + item.replace(re, "<b>$1</b>") + '</div>';