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
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.
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}
]
}
]
}
);
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 {}