2013-08-20 9 views
23

Mit dem folgenden html:Hinzufügen dynamisch Optionen und optgroups in Select2

<input type='hidden' id='cantseeme'> 

ich keine Probleme, dynamisch eine Select2 Kontrolle zu schaffen, und das Hinzufügen meine Optionen: can

// simplified example 
var select2_ary = []; 

select2_ary.push({ 
    id : "one", 
    text : "one" 
}); 
select2_ary.push({ 
    id : "two", 
    text : "two" 
}); 

$("#cantseeme").select2({ 
    placeholder : "Pick a number", 
    data : select2_ary 
}); 

Aber ich scheint nicht herauszufinden, wie man optgroups auf diese Weise hinzufügen kann. Ich fand this Diskussion auf Github, und this Artikel auf einem Blog, aber der ehemalige scheint nicht zu diskutieren, dynamische optgroup Ergänzungen und ich kann einfach keinen Sinn von letzterem machen.

Wer hat irgendwelche Ideen?

Antwort

34

ich die Antwort gefunden in der Diskussion Sie die Objektstruktur für optgroups verknüpft Github begraben, ist wie folgt:

{ 
    id  : 1, 
    text : 'optgroup', 
    children: [{ 
       id : 2, 
       text: 'child1' 
      }, 
      { 
       id  : 3, 
       text : 'nested optgroup', 
       children: [...] 
      }] 
} 

Demo fiddle

+0

* facepalm * Vielen Dank. Ich bin so dumm, das zu verpassen. Tbh, überrascht, dass das vorher noch niemand gefragt hat! –

+1

koala_dev, es sieht aus wie die Geige, die du gepostet hast, funktioniert nicht mehr – IcedDante

25

Ja Antwort oben richtig ist, koala_dev ist. Wenn die Optionsgruppen-Header jedoch keine auswählbaren Tags sein sollen, entfernen Sie das Feld "id" aus den Headern, die Sie an select2 übergeben. Für Children [] muss noch ein "ID" -Feld ausgewählt werden. Zum Beispiel:

// `Header One` Is Selectable 
[{ 
    id  : 0, 
    text  : "Header One", 
    children : [{ 
     id : 0, 
     text : "Item One" 
    }, { 
     ... 
    }] 
}] 


// `Header One` Is Not Selectable 
[{ 
    text  : "Header One", 
    children : [{ 
     id : 0, 
     text : "Item One" 
    }, { 
     ... 
    }] 
}] 
+0

Dies sollte die akzeptierte Antwort sein –

Verwandte Themen