So erlauben Sie dem Benutzer, eine leere Zeichenfolge auf Select2 auszuwählen

Lesezeit: 2 Minuten

Benutzer-Avatar
Schmied

Die Textbox wird dynamisch mit einem Remote-Aufruf gefüllt, der Select2 verwendet, und ich möchte Benutzern erlauben, das Feld leer zu lassen.

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

Hier ist ein funktionierendes Beispiel http://ivaynberg.github.io/select2/index.html#ajax

  • Bitte verlinken Sie nicht auf Code – fügen Sie Ihren Code hier mit der minimalen Menge ein, um das Problem zu reproduzieren

    – Sterling Archer

    14. März 2014 um 16:06 Uhr

  • @RUJordan Danke für die Erinnerung, Code enthalten

    – Schmied

    15. März 2014 um 5:15 Uhr


Benutzer-Avatar
Johannes S

Sie können die einstellen allowClear Option zu true.

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

Wenn eingestellt auf truedas allowClear bewirkt, dass das Select2-Steuerelement eine Löschschaltfläche anzeigt, aber Sie müssen auch die angeben placeholder Option, damit es funktioniert.

Hier ist ein jsfiddle zeigt, dass es für ein Select2 funktioniert, das Ajax verwendet.

  • Danke, das ist genau das, wonach ich gesucht habe.

    – Schmied

    15. März 2014 um 5:19 Uhr

  • Kein Problem mit ‘Platzhalter’, ich werde ihm einfach eine leere Zeichenfolge zuweisen.

    – Schmied

    15. März 2014 um 5:32 Uhr

  • @sc89 – Es funktioniert gut für Ajax. Sieh dir das an jsfiddle.

    – Johannes S

    28. August 2015 um 15:29 Uhr

  • @sc89 – Ich habe Ihren Code gesehen, aber nichts wesentlich anderes gesehen. Hier ist ein jsfiddle das ist so nah wie möglich an Ihrem Code.

    – Johannes S

    28. August 2015 um 15:53 ​​Uhr

  • Oh mein John, du hast Recht und ich bin dumm, dass ich den Fehler gemacht hatte, die Optionen in die Ajax-Option selbst zu stecken …. Es tut mir sehr leid. Ich habe meine Kommentare gelöscht, um zukünftige Verwirrung zu vermeiden.

    – Jemand

    28. August 2015 um 16:05 Uhr


Benutzer-Avatar
Benutzer2306059

Das hat bei mir funktioniert,

$('#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}
        ]
      }
    ]
  }
);

  • Dieser Code ist besser, da die ID an das Backend gesendet wird, wenn nichts ausgewählt ist.

    – Armin.G

    11. Juni 2021 um 8:31 Uhr

Angenommen, Sie verwenden Formtastisch Normalerweise können Sie mit Active Admin während der Deklaration bestehen

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

Konzentrieren Sie sich auf geschweifte Klammern {}

1215710cookie-checkSo erlauben Sie dem Benutzer, eine leere Zeichenfolge auf Select2 auszuwählen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy