Переопределить строку минимальной длины Select2

Select2 JQuery Plugin

Мне было трудно переопределить сообщение по умолчанию для ввода минимальной длины в jquery Select2.

по умолчанию плагин сообщает следующее сообщение.

Текст по умолчанию

Please enter 1 more characters

Мое требование состояло в том, чтобы показать следующий текст

Требуемый текст

Enter 1 Character

пожалуйста, поделитесь этим решением. Благодарю.

Ответы

Ответ 1


Решение

Вот решение, которое я обнаружил.

До v4

Initialize

$("input[name='cont_responsible'],input[name='corr_responsible'],input[name='prev_responsible'],input[name='pfmea_responsible']").select2({
            minimumInputLength: 1,
            formatInputTooShort: function () {
                return "Enter 1 Character";
            },  
});

Примечание

Не забудьте добавить этот код в свой документ. готовая функция.

       $(document).ready(function () {
});

Я поделился своим решением, любые лучшие решения приветствуются.

Спасибо.

Использование v4 и далее

Следующие действия выполнялись для V4. @Исаак Кляйнман language: { inputTooShort: function () { return ''; } },

Ответ 2

При выборе Select2 v4 принятый ответ не работает. Расширяя комментарий @IsaacKleinman, способ переопределить сообщения по умолчанию для отдельного экземпляра Select2 осуществляется через свойство language:

var opts = {
  language: {
    inputTooShort: function(args) {
      // args.minimum is the minimum required length
      // args.input is the user-typed text
      return "Type more stuff";
    },
    inputTooLong: function(args) {
      // args.maximum is the maximum allowed length
      // args.input is the user-typed text
      return "You typed too much";
    },
    errorLoading: function() {
      return "Error loading results";
    },
    loadingMore: function() {
      return "Loading more results";
    },
    noResults: function() {
      return "No results found";
    },
    searching: function() {
      return "Searching...";
    },
    maximumSelected: function(args) {
      // args.maximum is the maximum number of items the user may select
      return "Error loading results";
    }
  }
};
$('#mySelect').select2(opts);

Чтобы переопределить функции глобально, вызовите функцию set по умолчанию (в соответствии с документами):

$.fn.select2.defaults.set("key", "value")

Однако в нашем коде мы делаем это так:

$.fn.select2.defaults.defaults['language'].searching = function(){
  return 'Custom searching message'
};

Я не знаю, почему мы не следуем документам, но он работает.

Ответ 3

select2 расширен для строк переопределения локализации

$.fn.select2.defaults = $.extend($.fn.select2.defaults, {
formatMatches: function (matches) { return matches + $filter('translate')('label.matches.found'); },
formatNoMatches: function () { return $filter('translate')('noMatches.found'); },
formatInputTooShort: function (input, min) { var n = min - input.length; return $filter('translate')('label.please.enter ') + n + $filter('translate')(' more.characters')+ (n == 1? "" : "s"); },
formatInputTooLong: function (input, max) { var n = input.length - max; return $filter('translate')('please.delete ') + n + $filter('translate')('')('delete.characters') + (n == 1? "" : "s"); },
formatSelectionTooBig: function (limit) { return $filter('translate')('select.only') + limit + $filter('translate')('select.item ') + (limit == 1 ? "" : "s"); },
formatLoadMore: function (pageNumber) { return $filter('translate')('load.results'); },
formatSearching: function () { return $filter('translate')('label.search'); }
});
}