質問
魔法のために jQuery を使用するフォームがあります。そのフォームにはボタンがありますAdd Account
。そのボタンはフィールドAccount
を追加しAmount
、別のボタンも追加しますRemove Account
(推測できる場合は、これら 2 つのフィールドを削除します)。これはすべてうまく機能します...
同じフォームに別のフィールドがありSalary
、これをすべてのフィールドの合計と比較したいと思いAmount
ます。問題は、jQuery を使用してフィールド$.each()
を反復処理するAmount
と、ページが読み込まれたときに DOM に存在していたフィールドのみが認識され、新しく追加されたフィールドは認識されないことです。
Amount
これらの追加フィールドを反復するにはどうすればよいですか? (または、これを完全に実行する方が良いでしょうか?)
私が今していること:
$(document).ready(function(){
$('#form').on('keyup', '.amount', balanceAmountsWithSalary);
});
var balanceAmountsWithSalary = function(){
var salary = parseInt($('#salary').val(),10);
var total = 0;
$('#accounts .account').each(function(){
var amount = parseInt($(this).find('.amount').val(),10);
total += amount;
});
if (total === salary) {
$('#accounts .account').each(function(){
// Do some stuff to each input.amount located in div.account
});
} else {
$('#accounts .account').each(function(){
// Do some BAD stuff to each input.amount located in div.account
});
}
}
ありがとう!
答え
したがって、問題はアカウントの追加イベントの単純なエラーだったので、最初に残りのコードを含める方がおそらく役に立ちました。追加されたアイテムの名前にのみ「s」を追加して、コンテナー クラスのラベルを誤って付けました。いずれにせよ、それはコメントです!jsFiddle に例を投稿すると、このエラーを見つけるのに役立ちました。