无线电 Buttons/Textbox 计算:Deselect/Recalculate 如果用户改变主意 (Javascript/jquery/php)

Radio Buttons/Textbox Calculation: Deselect/Recalculate if User Changes Mind (Javascript/jquery/php)

我有一个 php 网络表单需要帮助。

这部分表格使用 javascript。选中选项旁边的单选按钮会将费用填充到相应的文本框中,这些文本框的值将在总计文本框中计算。

用户只能 select 一种语言,价格为 75 美元。他们还可以选择以 275 美元的价格 select 该语言的相应学分。

如果一个人 select 只有一个信用选项,我希望相应的语言按钮也 select,并且两种费用都应出现在适当的框中并在总计中正确计算。

如果一个人改变了主意,并且 select 使用了不同的语言,那么他们以前 selection 的其他单选按钮应该 deselect 和相应的费用文本框应清除。这是我遇到麻烦的地方。当我更改 selection 时,表格并不总是清除前一个 selection 的小计文本框,它会继续在总计中添加前一个 selection 的费用. (表格的总计不得超过 307 美元。)

我不是专家编码员,我承认我使用的代码不是最current/efficient。自从原来的javascript写成这种形式后,jquery和php就成了主导。这种形式混合使用了老式 javascript、jquery 和 php。我欢迎所有可能的解决方案来完成这项任务。

因此,我向这个社区发出呼吁,感谢大家花时间帮助我学习。

http://jsfiddle.net/k5wL5vx6/

function total()
    {

var total=0;
var reg=0;  

if (window.document.registration.dutch_EENCx075_27745.checked) {
        reg=reg+75; window.document.registration.dutch_EENCx075_27745_subtotal.value=75;
    } else {window.document.registration.dutch_EENCx075_27745_subtotal.value = ""; }

if (window.document.registration.dutch_WLC110_27750.checked) {
    window.document.registration.dutch_EENCx075_27745.checked = true; 
        reg=reg+232; window.document.registration.dutch_WLC110_27750_subtotal.value=232;
        reg=reg+75; window.document.registration.dutch_EENCx075_27745_subtotal.value=75;
    } else {window.document.registration.dutch_WLC110_27750_subtotal.value = "";}

if (window.document.registration.esl_EENCx075_27745.checked) {
        reg=reg+75; window.document.registration.esl_EENCx075_27745_subtotal.value=75;
    } else {window.document.registration.esl_EENCx075_27745_subtotal.value = ""; }

if (window.document.registration.esl_WLC110_27751.checked) {
    window.document.registration.esl_EENCx075_27745.checked = true;
        reg=reg+232; window.document.registration.esl_WLC110_27751_subtotal.value=232;
        reg=reg+75; window.document.registration.esl_EENCx075_27745_subtotal.value=75;
    } else {window.document.registration.esl_WLC110_27751_subtotal.value = ""; }

total = total + reg; 

   window.document.registration.amount1.value=total.toFixed(2);  

}

这有效,只需将 1、2、3、4 添加到 onClick() 中,就像这样 onClick(1)。我还更新了你的 jsfiddle http://jsfiddle.net/9rqofbsc/

function total(button) {
    if (button == 1) {
        $("#dutch_EENCx075_27745").prop("checked", true);
        $("#dutch_WLC110_27750").prop("checked", false);
        $("#esl_EENCx075_27745").prop("checked", false);
        $("#esl_WLC110_27751").prop("checked", false);
    }
    if(button == 2) {
        $("#dutch_EENCx075_27745").prop("checked", true);
        $("#dutch_WLC110_27750").prop("checked", true);
        $("#esl_EENCx075_27745").prop("checked", false);
        $("#esl_WLC110_27751").prop("checked", false);
    }
    if(button == 3) {
        $("#dutch_EENCx075_27745").prop("checked", false);
        $("#dutch_WLC110_27750").prop("checked", false);
        $("#esl_EENCx075_27745").prop("checked", true);
        $("#esl_WLC110_27751").prop("checked", false);
    }
    if(button == 4) {
        $("#dutch_EENCx075_27745").prop("checked", false);
        $("#dutch_WLC110_27750").prop("checked", false);
        $("#esl_EENCx075_27745").prop("checked", true);
        $("#esl_WLC110_27751").prop("checked", true);
    }
    var total = 0;
    var reg = 0;

    if ($('#dutch_EENCx075_27745').is(':checked')) {

        reg = reg + 75;
        window.document.registration.dutch_EENCx075_27745_subtotal.value = 75;
    } else {
        window.document.registration.dutch_EENCx075_27745_subtotal.value = "";
    }

    if ($('#dutch_WLC110_27750').is(':checked')) {

        reg = reg + 232;
        window.document.registration.dutch_WLC110_27750_subtotal.value = 232;
        reg = reg + 75;
        window.document.registration.dutch_EENCx075_27745_subtotal.value = 75;
    } else {
        window.document.registration.dutch_WLC110_27750_subtotal.value = "";
    }

    if ($('#esl_EENCx075_27745').is(':checked')) {

        reg = reg + 75;
        window.document.registration.esl_EENCx075_27745_subtotal.value = 75;
    } else {
        window.document.registration.esl_EENCx075_27745_subtotal.value = "";
    }

    if ($('#esl_WLC110_27751').is(':checked')) {

        reg = reg + 232;
        window.document.registration.esl_WLC110_27751_subtotal.value = 232;
        reg = reg + 75;
        window.document.registration.esl_EENCx075_27745_subtotal.value = 75;
    } else {
        window.document.registration.esl_WLC110_27751_subtotal.value = "";
    }


    total = total + reg;

    window.document.registration.amount1.value = total.toFixed(2); //display the grand total.

}