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