Слушайте изменения событий в формах: JQuery - PullRequest
0 голосов
/ 11 октября 2009

У меня есть форма с идентификатором «wizard» - в этой форме у меня есть только элементы select. Эта форма находится в лайтбоксе с использованием плагина JQuery fancybox :

Я хочу знать, когда что-либо из этого было изменено с помощью JQuery. Как я могу это сделать? В настоящее время у меня есть:

$('form#wizard select[name=servers], form#wizard select[name=cores]').change(function() {
var channels = parseInt($('form#wizard select[name=servers]').val(), 10) * parseInt($('form#wizard select[name=cores]').val(), 10);
$('#yellow').val(channels);
});

РЕДАКТИРОВАТЬ - У меня есть вышеупомянутое в $(document).ready(function() {...}

Однако, это не работает, даже не запускается. Я поместил оповещения там, и они никогда не появляются. Выше работает только тогда, когда выше это div, я удалил дисплей: ни один из, странно! Поэтому я ищу другую реализацию, чтобы обойти это, поскольку мне нужен этот лайтбокс как есть.

Мне действительно нужна помощь в этом.

Спасибо всем

1 Ответ

5 голосов
/ 11 октября 2009

Функция jQuery change связывает только те элементы, которые присутствуют при возникновении события domready. Если используемый вами плагин лайтбокса динамически создает элементы, вы должны использовать функцию jQuery live, чтобы «привязать ваш обработчик ко всем текущим и будущим подобранным элементам».

Изменить это:

$('your selector').change(function() { /* code ... */ });

с этим:

$('your selector').live('change', function() { /* code ... */ });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...