Флажок Javascript при клике

У меня есть форма с двумя флажками.

Флажок A = 1500 долларов Флажок B = 1500 долларов

Что я хочу сделать, так это то, что когда флажок "установлен", я хочу отобразить $1500 и добавить в скрытое значение. Если флажок снят, вычтите 1500 долларов.

Когда оба флажка отмечены, я хочу, чтобы друг с другом выполнялось сложение, а это значит, что я хочу, чтобы значение "3000 долларов" в сумме вычиталось соответственно.

В настоящее время с моими кодами я могу заставить его работать только для одного флажка, что означает, что, когда флажок установлен, он будет составлять 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;
}      

1 ответ

Решение

Вы всегда устанавливаете значение 1500. Вам нужно добавить 1500 вместо 1500. Попробуйте изменить onCheck3 и onCheck4, как показано ниже:

function onCheck3() {
    t = Number( document.form1.PreMeeting.value );
    document.form1.PreMeeting.value = t + 1500;
}
Другие вопросы по тегам