У меня есть выпадающий список, и я привязал к нему обработчик события изменения. Всякий раз, когда пользователь выбирает новую опцию, я хочу знать, является ли она последней опцией в списке.
Досадно, что соответствующее условие во фрагменте ниже всегда возвращает true, независимо от того, какая опция была выбрана:
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);
}
});
Даже если я сделаю это, результат будет таким же:
if(jQuery('#' + this.id + ' option:selected').is(':last')) {
...
Что я делаю не так? И если вы знаете, почему оба теста оцениваются как истинные?
РЕДАКТИРОВАТЬ: Найдено решение:
if(jQuery('#' + this.id + ' option:last').is(':selected')) {
...
}
Кто-нибудь знает лучший способ сделать это?