我使用的是select2js的最新版本,但我不知道为什么,单击时默认情况下在列表中有一个“ s”。它使用Ajax调用,为了避免这种情况,我将minimumInputLength设置为2。这是我的电话:

$('.search-location').select2({
    language: 'fr',
    placeholder: "Ville ou CP",
    minimumInputLength: 2,
    maximumSelectionLength: 4,
    width: '100%',
    ajax: {
        url: ajaxurl,
        dataType: "json",
        data: function (params) {
            var queryParameters = {
                q: params.term,
                action: 'get_the_locations'
            }
            return queryParameters;
        },
        cache: false,
        processResults: function (data) {
            return {
                results: $.map(data, function (item) {
                    return {
                        text: item.label,
                        id: item.number
                    }
                })
            };
        }
    }
}).on('select2:select', function (e) {
    var data = e.params.data;
});


您可以在此处进行测试:https://www.cabinet-hermes.fr/在主搜索栏上,输入名为“ VILLE,CP ou DEPARTEMENT”。谢谢。

最佳答案

如果您使用的版本高于V4,则可以尝试添加以下选项:

language: { inputTooShort: function () { return ''; } }


这样,如果用户输入少于2个字符,将不会显示任何内容。

我显然没有足够的元素来重现您的问题,但这是在select2中删除任何不需要的选项的最通用方法。

09-12 01:48