Masalahnya di sini adalah bahwa "on" diterapkan ke semua elemen yang ada PADA WAKTU. Saat Anda membuat elemen secara dinamis, Anda perlu menjalankannya lagi:
$('form').on('submit',doFormStuff);
createNewForm();
// re-attach to all forms
$('form').off('submit').on('submit',doFormStuff);
Karena formulir biasanya memiliki nama atau ID, Anda juga dapat melampirkan ke formulir baru. Jika saya membuat banyak hal dinamis, saya akan menyertakan fungsi setup atau bind:
function bindItems(){
$('form').off('submit').on('submit',doFormStuff);
$('button').off('click').on('click',doButtonStuff);
}
Jadi setiap kali Anda membuat sesuatu (tombol biasanya dalam kasus saya), saya hanya memanggil bindItems untuk memperbarui semua yang ada di halaman.
createNewButton();
bindItems();
Saya tidak suka menggunakan 'body' atau elemen dokumen karena dengan tab dan modals mereka cenderung berkeliaran dan melakukan hal-hal yang tidak Anda harapkan. Saya selalu berusaha sespesifik mungkin kecuali proyek 1 halaman yang sederhana.
$(document).on('submit','form.remember',function(){...})