Настройка автозаполнения отдельно для каждого элемента в вашем выборе, используя закрытие для хранения ссылки на соответствующий элемент.Примерно так:
$('input.autocomplete').each(function(i, el) {
el = $(el);
el.autocomplete({
source: function(req, add) {
var id = el.attr('id');
alert(id);
}
});
});
Альтернатива (правка)
Я не понимаю, почему существует такое сопротивление использованию each()
: этоработает, код очень понятный и читаемый, и он не создает проблем с эффективностью;но если вы решили избежать each()
, вот альтернатива ...
* ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ: следующий подход опирается (немного) на внутренние компоненты jQuery Autocomplete, поэтому я рекомендуюпервый вариант ... но выбор за вами.
$('input.autocomplete').autocomplete({
source: function(req, add) {
var id = this.element.attr('id');
alert(id);
}
});
});
Это будет работать, по крайней мере, до тех пор, пока они не изменят способ вызова функции source()
из плагина autocomplete
.
Итак, у вас есть два варианта ... что-то для всех.