每当我试图从Selectize输入中删除一个项目时,我在控制台中得到以下错误:
index.js:12 Uncaught Error: Syntax error, unrecognized expression: option[value="{"id":"allCustomers","type":"keyword"}"]
at Sizzle.error (index.js:12:1)
at Sizzle.tokenize (index.js:12:1)
at Sizzle.select (index.js:12:1)
at Function.Sizzle [as find] (index.js:12:1)
at jQuery.fn.init.find (index.js:12:1)
at Selectize.updateOriginalInput (<anonymous>:31913:16)
at Selectize.removeItem (<anonymous>:31720:9)
at HTMLDivElement.<anonymous> (<anonymous>:34943:33)
at HTMLDocument.dispatch (index.js:12:1)
at elemData.handle (index.js:12:1)
字符串
我用来删除该项目的代码看起来像这样:
$(document).on('click', 'div.selectize-input div.item', function (e) {
var select = $('#customerDropdownMailform').selectize();
var selectedValue = $(this).attr("data-value");
select[0].selectize.removeItem(selectedValue);
select[0].selectize.refreshItems();
select[0].selectize.refreshOptions();
});
型
有没有人知道它为什么会坏?我在网上找到的例子建议做上面提到的删除项目的解决方案。
我怀疑data-value可能是罪魁祸首。我试着修改它,使它成为一个int或json字符串化,但我得到了相同的语法错误。
1条答案
按热度按时间wlwcrazw1#
问题是你在
[value=...]
选择器中使用双引号作为值的分隔符。JSON中的双引号与之匹配,所以它不会将其视为单个值。在选择器中使用单引号。
字符串
您需要使用
'
,这样单引号就不会与data-value=
周围的引号匹配