Select2不会转义HTML或javascript

Select2 does not escape HTML or javascript

本文关键字:javascript HTML 转义 Select2      更新时间:2023-09-26

我有一个select2字段,用于搜索现有标记,如果标记当前不存在,您可以输入一个新标记。

如果我将select2与默认选项一起使用,仅用于从select html标记中选择项目,那么它可以很好地逃脱代码。例如:

$(document).ready(function() {
    $('.tagselect').each(function() {
        var placeholder = $(this).data('placeholder');
        var url = $(this).data('url');
        var saved = $(this).data('saved');
        $(this).select2({tags:["red", "green", "blue"]});
    });
});

但我的JS中似乎有什么东西阻止了它:

$(document).ready(function() {
    $('.tagselect').each(function() {
        var placeholder = $(this).data('placeholder');
        var url = $(this).data('url');
        var saved = $(this).data('saved');
        $(this).select2({
            tags: true,
            width: '400px',
            placeholder: placeholder,
            tokenSeparators: [","],
            minimumInputLength: 1,
            initSelection : function(element, callback){
                saved && callback(saved);
            },
            ajax: {
                url: url,
                dataType: 'json',
                data:    function(term) { return { q: term }; },
                results: function(data) { return { results: data }; }
            },
            createSearchChoice: function(term, data) {
                if ($(data).filter(function() {
                    return this.name.localeCompare(term)===0;
                }).length===0) {
                    return { id: term, name: term };
                }
            },
            multiple: true,
            formatResult:    function(item, page){ return item.name; },
            formatSelection: function(item, page){ return item.name; }
        });
    });
});

检查"select2"选项标记类型。

第一个示例标记类型是Array。

tags:["red", "green", "blue"]

第二个示例标记类型是布尔型。

tags: true

select2可以接受数组或布尔值类型吗???