ここで:http://jsfiddle.net/justeric/AWC4U/4/チェックボックスをオンにすると、テキストフィールド列のすべてのエントリが合計され、その合計が100から差し引かれ、対応するテキストフィールドに差が配置されます。したがって、20がテキストフィールド列のすべてのエントリの合計である場合、チェックボックスをオンにすると、対応するテキストフィールドに80(100-20)が入力されます。この機能は正しく機能しますが、私の問題は次のとおりです。
チェックボックスをオフにすると、対応するテキストフィールドは他のテキストフィールドに影響を与えることなくゼロ値に戻るはずです。したがって、上記の例では、20を変更せずに80を0に戻す必要があります。また、チェックされたすべての追加チェックボックスは、最後のチェックから入力されたものを含む、テキストフィールドの新しい合計を返す必要があります。現在、最初の計算は再入力を続けます。チェックされている追加のチェックボックスごとに。したがって、チェックボックスの合計が20で、チェックボックス80が対応するテキストフィールドに入力されていることを確認すると、それは正しいですが、別のチェックボックス80が再度入力されますが、それが間違っている場合は、100-20-80のために0が入力されます。 =0。
編集:
したがって、他のフィールドに影響を与えずにチェックボックスに対応するテキストフィールドをクリアするには、次のようなものが必要です。
$('.textfield').val(function() {
if($('#' + this.id.replace(/textfield/,'checkbox')).is(':unchecked')){
return 0;}
これはすべてのチェックされていないチェックボックスに影響しますが、チェックされているチェックボックスがオフに変更された場合にのみ機能するようにします。したがって、チェックされていないチェックボックスに関連付けられている他のテキストフィールドに影響を与えることなく、値は直感的な方法で0に戻ります。