O problema aqui é que o "on" é aplicado a todos os elementos que existem NO MOMENTO. Ao criar um elemento dinamicamente, você precisa executar o on novamente:
$('form').on('submit',doFormStuff);
createNewForm();
// re-attach to all forms
$('form').off('submit').on('submit',doFormStuff);
Como os formulários geralmente têm nomes ou IDs, você também pode anexar ao novo formulário. Se estou criando muitas coisas dinâmicas, incluirei uma função de configuração ou ligação:
function bindItems(){
$('form').off('submit').on('submit',doFormStuff);
$('button').off('click').on('click',doButtonStuff);
}
Então, sempre que você cria algo (botões geralmente no meu caso), eu apenas chamo bindItems para atualizar tudo na página.
createNewButton();
bindItems();
Eu não gosto de usar 'body' ou elementos de documento porque com guias e modais eles tendem a ficar por aí e fazer coisas que você não espera. Eu sempre tento ser o mais específico possível, a menos que seja um projeto simples de 1 página.
$(document).on('submit','form.remember',function(){...})