Начиная с jQuery 1.7, вы должны использовать jQuery.fn.on
:
$(staticAncestors).on(eventName, dynamicChild, function() {});
До этого рекомендуется использовать live()
:
$(selector).live( eventName, function(){} );
Однако live()
устарел в 1.7 в пользу on()
и полностью удален в 1.9. Подпись live()
:
$(selector).live( eventName, function(){} );
... может быть заменена следующей on()
сигнатурой:
$(document).on( eventName, selector, function(){} );
Например, если ваша страница динамически создавала элементы с именем класса dosomething
, вы привязывали бы событие к родительскому, который уже существует (здесь есть нуль проблемы, вам нужно что-то, что существует для привязки, не привязка к динамическому контенту), это может быть (и самый простой вариант) - document
. Хотя иметь в виду document
, возможно, не самый эффективный вариант .
$(document).on('mouseover mouseout', '.dosomething', function(){
// what you want to happen when mouseover and mouseout
// occurs on elements that match '.dosomething'
});
Любой родитель, который существует в момент привязки события, прекрасен. Например,
$('.buttons').on('click', 'button', function(){
// do something here
});
применимо к
Второй набор полей формы отсутствует в <form>
, поэтому он не будет ничего делать при отправке формы. Вы должны либо добавить его в текущую форму, либо обернуть его в другой тег формы и обработать отправку отдельно. Некоторый тип ajax может пригодиться здесь, или, может быть, даже использовать частичные шаблоны в django и иметь частичные части как часть формы, тогда, если вы получите успешный ответ, вы можете показать следующую форму и обрабатывать ее почти как совершенно отдельную форму. Когда вы отправляете форму, вы также можете проверить вкладку сети в инструментах разработчика и щелкнуть только что отправленный запрос, затем перейти на вкладку параметров и посмотреть, какие параметры были отправлены в форме отправки и каковы их значения. Я знаю, что это не прямой ответ, но, надеюсь, он поможет вам отладить немного больше.
Вам необходимо включить все в начальный тег <form>
. На данный момент у вас есть вторая часть вашей формы за пределами <form></form>
, и поэтому ничего не происходит, когда вы отправляете.