0

私は2つのチェックボックスを持つフォームを持っています。

チェックボックス A = $1500 チェックボックス B = $1500

私がやりたいことは、チェックボックス A が「チェック」されているとき、$1500 を表示して非表示の値に追加したいということです。チェックを外すと、$1500 が差し引かれます。

両方のチェックボックスがオンになっている場合は、お互いに追加を実行したい、つまり、合計で「$3000」の値が必要で、一方を削除すると、それに応じて減算されます。

現在、私のコードでは、1 つのチェックボックスのみで動作させることができます。つまり、チェックボックスがチェックされている場合は $1500 になり、チェックボックスが削除された場合は差し引かれます。チェックボックス A とチェックボックス B を組み合わせる方法がわかりません。

私のコードを見て、助けてください。

HTML

<label>
    <input type="checkbox" name="Meeting" onClick="if (this.checked) { onCheck3() } else { onUncheck3() }" value="Pre-Meeting 1" id="Meeting" />
     Pre-Meeting 1
</label>
<label>
    <input type="checkbox" name="Meeting" onClick="if (this.checked) { onCheck4() } else { onUncheck4() }" value="Pre-Meeting 2" id="Meeting" />
     Pre-Meeting 2
</label>

<input type="text" name="PreMeetingAmount" readonly id="PreMeetingAmount" /><input type="hidden" name="PreMeetingAmounthidden" readonly id="PreMeetingAmounthidden" />

Javascript

function onCheck3(){  
    t = document.form1.PreMeetingAmount.value;
    t2 = 0;

    if (t == 0) {
        document.form1.PreMeetingAmount.value = 1500;
    }
}
function onCheck4(){  
    t = document.form1.PreMeetingAmount.value;
    t2 = 0;

    if (t == 0) {
        document.form1.PreMeetingAmount.value = 1500;
    }
}

function onUncheck3(){  
    t = document.form1.PreMeetingAmount.value;
    t = t - 1500;

        if (t == 0)
            document.form1.PreMeetingAmount.value = document.form1.PreMeetingAmounthidden.value;
        else 
            document.form1.PreMeetingAmount.value = t;
}    

function onUncheck4(){  
    t = document.form1.PreMeetingAmount.value;
    t = t - 1500;

        if (t == 0)
            document.form1.PreMeetingAmount.value = document.form1.PreMeetingAmounthidden.value;
        else 
            document.form1.PreMeetingAmount.value = t;
}      
4

1 に答える 1

1

常に値を 1500 に設定しています。1500 に設定するのではなく、1500 を追加する必要があります。onCheck3 と onCheck4 を次のように変更してみてください。

function onCheck3() {
    t = Number( document.form1.PreMeeting.value );
    document.form1.PreMeeting.value = t + 1500;
}
于 2013-03-01T02:48:22.040 に答える