Tengo una lista desplegable y he vinculado un controlador de eventos de cambio. Cada vez que el usuario selecciona una nueva opción, quiero saber si es la última opción de la lista.¿Cuál es la mejor manera de verificar si la opción actualmente seleccionada en una lista desplegable es la última?
un fastidio, la condición correspondiente en el siguiente fragmento de código devuelve siempre cierto, independientemente de la opción ha sido seleccionada:
sel.change(function() {
//this always returns true!
if(jQuery('#' + this.id + ' option').is(':last')) {
alert('hello I am the last option');
inputDiv.show();
inputDiv.find("input").attr('disabled',false);
} else {
inputDiv.hide();
inputDiv.find("input").attr('disabled',true);
}
});
Incluso si hago esto, el resultado es el mismo:
if(jQuery('#' + this.id + ' option:selected').is(':last')) {
...
¿Qué estoy haciendo mal? Y si sabes, ¿por qué esas pruebas se evalúan como verdaderas?
EDIT: Se encuentra la solución:
if(jQuery('#' + this.id + ' option:last').is(':selected')) {
...
}
¿Alguien sabe una mejor manera de hacer esto?
Si usted tiene una solución a su propia pregunta puede agregarlo como una respuesta no una edición a la pregunta. Además, la opción no-jquery de porneL puede ser un poco más rápida. – bendewey
+1 para el título descriptivo de la pregunta – Tjorriemorrie