表中的计算字段仅计算第一行 - 循环遍历表中的行以计算列值

时间:2017-08-09 16:38:27

标签: javascript razor

我的视图中的表中有一个记录列表,其中包含一个计算列。

List of records

从图像中,相关列是Mark-Up列,其值是根据Price,Casecost和Casesize生成/计算的。此列仅对用户可见,并且永远不会保存在db / table中。加载页面时计算值(下一个/上一个超过10行)。对于每个带有记录的页面,它只计算第一行的值,如图所示。

我有CSHTML

@Html.TextBox("q_markup", null, new { @class = "calc markupclass", @readonly = "readonly" })

的Javascript

function calculate() {

            //Fields that are used for calculations (declare variables)
            var casecost = parseFloat($('#item_q_casecost').val());
            var casesize = parseFloat($('#item_q_casesize').val());
            var price = parseFloat($('#item_q_sellprice').val());

            //calculations
            var unitcost = casecost / casesize;
            var markup = ((price - unitcost) / unitcost) * 100;

            //put calculated value into field
            $('#q_markup').val(markup.toFixed(2));           
    }

    $(document).ready(function () {
        calculate();
    });

我所尝试的是以下列方式在我的计算函数中有一个循环而没有任何成功

function calculate() {

//gather all markup fields on page
var rows = document.getElementsByClassName("markupclass");

//cycle through each rows and calculate
for (i = 0; i < rows.length; i++) {

    //do my calculations here
   }
}

如何计算所有行的字段?

1 个答案:

答案 0 :(得分:0)

不完全确定,但您可以尝试修复for循环

public function pictures()
{
    return $this->hasMany(Picture::class);
}