尝试从 Selectize 输入中删除项时出现语法错误

Getting a syntax error when attempting to remove an item from Selectize input

提问人:sakariya 提问时间:11/16/2023 最后编辑:sakariya 更新时间:11/17/2023 访问量:15

问:

每当我尝试从 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();
        });

有人知道它为什么会坏吗?我在网上找到的示例建议执行上述解决方案来删除该项目。

我怀疑数据值可能是罪魁祸首。我尝试对其进行修改,使其成为 int 或 json 字符串化,但我得到了相同的语法错误。

JavaScript jQuery 选择 selectize.js

评论


答:

0赞 Barmar 11/17/2023 #1

问题在于,您使用双引号作为选择器中值的分隔符。JSON 中的双引号与此匹配,因此它不会将其视为单个值。[value=...]

在选择器中使用单引号。

<div class="item" data-value='option[value=&apos;{"id":"allCustomers","type":"keyword"}&apos;]'>

您需要使用,以便单引号与周围的引号不匹配&apos;data-value=