jQueryを使用してハンドラを繰り返し追加すると、繰り返し追加され、イベントが発生したときに繰り返し呼び出されます(ただし、読み込みを続けます)。例:あなたが知っているので
var target = $("#target");
target.on("click", handler);
target.on("click", handler);
target.on("click", handler);
function handler() {
console.log("handler called");
}
<div id="target">click me</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
その場合に行う簡単なことは、それを追加するかどうかあなたには、いくつかの方法でにハンドラを追加した要素をマークです:
var form = $("....");
if (!form.hasClass("has-handler")) {
form.on("submit", handler).addClass("has-handler");
}
注:上記はDOMには当てはまりませんが、と同じ機能を使用することを条件とします。
var target = document.getElementById("target");
target.addEventListener("click", handler, false);
target.addEventListener("click", handler, false);
target.addEventListener("click", handler, false);
function handler() {
console.log("handler called");
}
<div id="target">click me</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
はいそれが問題です。あなたが付けたすべてのイベントは実行されます。あなたが記述していることから、新しい 'form'要素を作成するときにイベントを添付する心配がありません。コードのサンプルを見ると、信頼できるソリューションが得られます。 –