web-dev-qa-db-fra.com

Comment autoriser l'utilisateur à sélectionner une chaîne vide sur Select2

La texbox est remplie dynamiquement par un appel à distance à l'aide de Select2 et je souhaite autoriser les utilisateurs à laisser le champ vide.

$("#e6").select2({
    placeholder: "Search for a movie",
    minimumInputLength: 1,
    ajax: { 
        url: "http://api.rottentomatoes.com/api/public/v1.0/movies.json",
        dataType: 'jsonp',
        data: function (term, page) {
            return {
                q: term, // search term
                page_limit: 10,
              };
        },
        results: function (data, page) { 
            return {results: data.movies};
        }
    },
 });

Voici un exemple de travail http://ivaynberg.github.io/select2/index.html#ajax

20
Smith

Vous pouvez définir l'option allowClear sur true.

$("#e6").select2({
    allowClear: true,
    placeholder: "Search for a movie",
    ...

Lorsqu'elle est définie sur true, l'option allowClear fait que le contrôle Select2 affiche un bouton d'effacement, mais vous devez également spécifier l'option placeholder pour que cela fonctionne.

Voici un jsfiddle montrant que cela fonctionne pour un Select2 qui utilise ajax.

61
John S

Cela a fonctionné pour moi,

$('#f').select2(
  {
    allowClear: true,
    placeholder: {
      id: "-1",
      text:"City",
      selected:'selected'
    },
    data:[
      {id: -1,text: '',selected: 'selected',search:'',hidden:true},
      {    id: 1, 
           text: 'Italy', 
           search: "Italy", 
           children: [
               {id: 2, text: 'Sardinia', search: "Italy Sardinia", selected: false}, 
               {id: 3, text: 'Sicily', search: "Italy Sicily", selected: false}
           ]
      },
      {
          id: 4, 
          text: 'United Kingdom', 
          search: "United Kingdom",
          children:[
              {id: 5, text: 'Guernsey', search: "United Kingdom - Guernsey", selected: false},
              {id: 6, text: 'Jersey', search: "United Kingdom - Jersey", selected: false}
        ]
      }
    ]
  }
);
2
user2306059

Supposons que vous utilisez Formtastic Normalement avec Active Admin, vous pouvez passer pendant la déclaration

f.input :your_select_2_field, { as: :select2, collection: ['a', 'b'], include_blank: 'Select Nothing'}

Concentrez-vous sur les accolades {}

0
imsinu9