2011-11-16 26 views
7

Estoy buscando una forma de obtener la última opción seleccionada por el usuario en un formulario de selección múltiple usando jQuery.¿Cómo obtener la última opción seleccionada de un multiselección?

No estoy buscando el último elemento en la lista, pero para el último artículo el usuario hizo clic.

+4

Debe hacer un seguimiento del último elemento seleccionado usted mismo. –

Respuesta

5

Algo como esto

var lastSelected = null; 
$('.multiSelectOptions').click(function(){ 
    lastSelected = this.value; 
}); 
+1

1. No hay necesidad de 'each', y 2. no use' $ (this) .val() 'cuando' this.value' es más fácil. –

+0

@AndyE gracias por la entrada, ¿es mejor? :] –

+1

sí, +1 para usted :-) –

0

Usando this.value como en la respuesta anterior falla cuando el usuario ha hecho clic y varios elementos seleccionados Ctrl + - devuelve el valor de la primera selección en la lista, incluso si eso no fue el último clic. Pruebe esto:

var previouslySelected = []; 
$("#myMultiselect").change (function() { 
    // Get newly selected elements 
    var currentlySelected = $(this).val(); 
    var newSelections = currentlySelected.filter(function (element) { 
     return previouslySelected.indexOf(element) == -1; 
    }); 
    previouslySelected = currentlySelected; 

    if (newSelections.length) { 
     // If there are multiple new selections, we'll take the last in the list 
     var lastSelected = newSelections.reverse()[0]; 
    } 
}); 
Cuestiones relacionadas