Non sono sicuro che cosa sta succedendo qui, devo mancarequalcosa. Ho due caselle di selezione e gli utenti possono spostare elementi tra di loro per selezionare gli elementi di dati che vorrebbero scaricare, ecco la schermata di cattura:
Tutto funziona alla grande ECCETTO quando l'utente sposta alcuni elementi nella casella "Concetti dati" senza lasciare elementi selezionati in "Dati selezionati", come mostrato qui:
Ecco il codice che sta acquisendo i valori dalla casella "Dati selezionati":
var ExportSel = [];
$("#DataList2").each(function(){
ExportSel = $("#DataList2").val();
});
Ma questo restituisce un array vuoto se nulla èselezionato indipendentemente dal numero di elementi nella casella "Dati selezionati". Anche se quando lo controllo in firebug, mostra gli elementi e i valori sono presenti nella casella del selettore.
Sto fraintendendo la funzione .each, la funzione .val o qualcosa di ancora più fondamentale?
Un enorme grazie in anticipo, sempre impressionato dalla comunità dello stack!
risposte:
1 per risposta № 1Il valore di a <select multiple>
elemento è un array di tutte le opzioni selezionate. Ma non ti importa se le opzioni nel Selected Data
colonna sono selezionati, vuoi una matrice di tutti loro. Quindi è necessario scorrere le opzioni, ottenendo i loro valori.
var ExportSel = [];
$("#DataList2 option").each(function() {
ExportSel.push(this.value);
});