web-dev-qa-db-fra.com

Remplacer la chaîne de longueur minimale de Select2

Plugin Select2 Jquery

J'avais du mal à remplacer le message par défaut pour une entrée de longueur minimale dans jquery Select2.

par défaut le plugin donne le message suivant.

Texte par défaut

Please enter 1 more characters

Mon exigence était de montrer, le texte suivant

Texte requis

Enter 1 Character

veuillez partager la solution. Merci.

19
A.J.

Solution

Voici la solution que j'ai trouvée.

Avant la v4

Initialiser

$("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";
            },  
});

Remarque

N'oubliez pas d'ajouter ce code dans votre document. fonction prête.

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

J'ai partagé ma solution, de meilleures solutions sont les bienvenues.

Merci.

Utilisation de la v4 et des versions ultérieures

Les éléments suivants ont fonctionné pour V4. @Isaac Kleinman language: { inputTooShort: function () { return ''; } },

22
A.J.

La réponse acceptée ne fonctionne pas pour Select2 v4. En développant le commentaire de @IsaacKleinman, la façon de remplacer les messages par défaut pour une instance Select2 individuelle est via la propriété 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);

Pour remplacer les fonctions globalement, appelez la fonction set sur les valeurs par défaut ( selon la documentation ):

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

Cependant, dans notre code, nous le faisons comme ceci:

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

Je ne sais pas pourquoi nous ne suivons pas les documents, mais cela fonctionne.

27
Paul

Vous pouvez essayer ceci sur la version 4.0 ou supérieure

référence des problèmes

$("#select2").select2({
    minimumInputLength: 1,
  language: {
    inputTooShort: function() {
        return 'Please Add More Text';
    }
  }
});
0
Rohallah Hatami