Attualmente sto combattendo con gli elenchi a discesa e vorrei condividere le mie esperienze:
Esistono situazioni specifiche in cui <select>non possono essere utilizzate e devono essere "emulate" con il menu a discesa.
Ad esempio, se si desidera creare gruppi di input bootstrap, come Pulsanti con menu a discesa (consultare http://getbootstrap.com/components/#input-groups-buttons-dropdowns ). Sfortunatamente <select>non è supportato nei gruppi di input, non verrà reso correttamente.
O qualcuno lo ha già risolto? Sarei molto interessato alla soluzione.
E per renderlo ancora più complicato, non puoi usare così semplicemente $(this).text()per catturare quale utente selezionato nel menu a discesa se stai usando glypicons o icone fantastiche di font come contenuto per il menu a discesa. Ad esempio:
<li id="someId"><a href="#0"><i class="fa fa-minus"></i></a></li>
poiché in questo caso non è presente alcun testo e se ne aggiungerai alcuni verrà visualizzato anche nell'elemento a discesa e ciò è indesiderato.
Ho trovato due possibili soluzioni:
1) Usa $(this).html()per ottenere il contenuto <li>dell'elemento selezionato e poi per esaminarlo, ma otterrai qualcosa del genere, <a href="#0"><i class="fa fa-minus"></i></a>quindi devi giocare con questo per estrarre ciò di cui hai bisogno.
2) Uso $(this).text()e nascondere il testo in elemento arco nascosto:
<li id="someId"><a href="#0"><i class="fa fa-minus"><span class="hidden">text</span></i></a></li>. Per me questa è una soluzione semplice ed elegante, puoi mettere tutto il testo che ti serve, il testo sarà nascosto e non dovrai fare alcuna trasformazione del $(this).html()risultato come nell'opzione 1) per ottenere ciò di cui hai bisogno.
Spero sia chiaro e possa aiutare qualcuno :-)