繁体   English   中英

Jquery:如何根据输入类型 = 数字中的值计算每个 function 的总平均值?

[英]Jquery: How can I compute total average of each function based from the values in the input type = number?

我是 Javascript/Jquery 的新手,我想根据每个 function 名称 [表格第一列] 的文本框中的值计算最终评级(核心 function,支持 ZC1C425268E68385D14AB.7A7 服务)

图片

基于示例的公式:

  1. 最终评级核心管理 Function = (4.6 + 4.3)/2(因为只有 2 个核心功能平均值可用)* 0.65
  2. 最终评级支持 Function = (4.3 + 4.3)/2 * 0.2275
  3. 研究最终评级 Function = (4 + 4)/2 * 0.1225

要求是每次每行的 A 值列更改最终评级更改。

这是关于我如何获得 A 值的 Jquery:

//GET THE AVERAGE PER ROW
$(".q-value, .e-value, .t-value").change(function(){
    let currentRow = $(this).closest('tr');
    let EValue = parseInt(currentRow.find('.e-value').val());
    let QValue = parseInt(currentRow.find('.q-value').val());
    let TValue = parseInt(currentRow.find('.t-value').val());
    currentRow.find('.a-value').val((EValue  + QValue + TValue ) / 3);
});

.q-value、.e-value、.t-value、.a-value 都在 class 内。

我为每个最终评级函数添加了 3 个输入类型

<input type="number" class="form-control form-control-sm" id="core-total" name="total_core" readonly>
<input type="number" class="form-control form-control-sm" id="support-total" name="total_support" readonly>
<input type="number" class="form-control form-control-sm" id="research-total" name="total_research" readonly>

所以每个 function 的值将被转储在那里。 请帮助我。 我被困了几天。

在我同事的帮助下,这个问题已经解决了。 实际上,我为每个函数(核心、支持等)在每个输入类型中硬编码了一个 if 语句

@if($row->function_name == 'Core Functions')
                                <input type="number" onchange="setFourNumberDecimal(this)" class="form-control form-control-sm a-value-core" name="A[]" style="width: 50px" readonly>
                            @elseif($row->function_name == 'Support Functions')
                                <input type="number" onchange="setFourNumberDecimal(this)" class="form-control form-control-sm a-value-support" name="A[]" style="width: 50px" readonly>
                            @endif
                            @if($row->function_name == 'Research and Extension Services')
                                <input type="number" onchange="setFourNumberDecimal(this)" class="form-control form-control-sm a-value-research" name="A[]" style="width: 50px" readonly>
                            @endif

在那之后。 他创建了一个 JS function 用于计算。

//COMPUTE AVERAGE FOR EACH FUNCTION
    function computeAvg() {
        // For Core Functions
        const corevalues = document.getElementsByClassName("a-value-core")
        let avg = 0
        let total = 0
        let count = 0
        for (let x = 0; x < corevalues.length; x++) {
            if (corevalues[x].value !== "") {
                count++
                total = total + parseFloat(corevalues[x].value)
            }
        }
        avg = (total / count) * 0.65
        $('#core-total-average').val(isNaN(avg) ? "" : avg)

        // For Support Functons
        avg = 0
        total = 0
        count = 0
        const supvalues = document.getElementsByClassName("a-value-support")
        for (let x = 0; x < supvalues.length; x++) {
            if (supvalues[x].value !== "") {
                count++
                total = total + parseFloat(supvalues[x].value)
            }
        }
        avg = total / count * 0.2275
        $('#support-total-average').val(isNaN(avg) ? "" : avg)

        // For Research Services
        avg = 0
        total = 0
        count = 0
        const resvalues = document.getElementsByClassName("a-value-research")
        for (let x = 0; x < resvalues.length; x++) {
            if (resvalues[x].value !== "") {
                count++
                total = total + parseFloat(resvalues[x].value)
            }
        }
        avg = total / count * 0.1225
        $('#research-total-average').val(isNaN(avg) ? "" : avg)
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM