使用Javascript在复选框中进行计算

使用Javascript在复选框中进行计算,javascript,jquery,twitter-bootstrap,Javascript,Jquery,Twitter Bootstrap,我在Twitter引导中有一个复选框列表,格式如下: <form method='post' class="form-horizontal" id="myform"> <input type="checkbox" attr1="2" attr2="4" prodname="product1"> product1 <input type="checkbox" attr1="5" attr2="1" prodname="product2"> produ

我在Twitter引导中有一个复选框列表,格式如下:

<form method='post' class="form-horizontal" id="myform">
   <input type="checkbox" attr1="2" attr2="4" prodname="product1"> product1
   <input type="checkbox" attr1="5" attr2="1" prodname="product2"> product2
   <input type="checkbox" attr1="1" attr2="7" prodname="product3"> product3
   ....
   ....
   <button type="submit" class="btn btn-success pull-right">Calculate</button>
</form>

产品1
产品2
产品3
....
....
算计
用户将选择部分产品(不是全部),然后单击“提交”按钮以查看以下公式的结果:

finalvalue=attr1的总和/检查的总数+10*最佳产品属性1-最佳产品属性2

这意味着我必须找到所有attr1复选框的总和以及选中了多少复选框,然后尝试每个复选框,看看哪一个会给出最大值。然后,我将使用最终值和最佳产品的
prodname
更新div

我不想在服务器端这样做,我想用Javascript/JQuery试试。有什么想法吗?

有关“最佳”计算:请参阅此问题:

有关选中复选框的数量:

评论后编辑,更好地表达预期行为:

var sumAttr1 = null;
var bestProductName = null;
var maxScorePart = null;

// Browse each checked input to get the sum of attr1 and get the best product
$('input:checkbox:checked').each(function() {
    var valueAttr1 = parseInt($(this).attr('attr1'));
    var valueAttr2 = parseInt($(this).attr('attr2'));

    // Cumulate attr1 for final calc
    sumAttr1 += valueAttr1;

    // Check best prod
    var currentScorePart = 10 * valueAttr1 - valueAttr2;
    if(currentScorePart > maxScorePart) {
        maxScorePart = currentScorePart;
        bestProductName = $(this).attr('prodname');
    }
});

var maxScore = sumAttr1 / $('input:checkbox:checked').length + maxScorePart;
alert('Best product = ' + bestProductName + '\r\nBest product score = ' + maxScore);

参见工作示例:

您所说的“然后尝试每个复选框,看看它们中的哪一个将给出最大值”是什么意思?@TJ如果您看到公式,则
最佳产品可能是其中一个复选框。我必须尝试所有复选框,看看哪一个会在公式中给出最大的最终值。我不想找到最大值属性,而是可能给出最大最终值的复选框。由于公式使用了这两个属性,所以没有必要让最大的属性成为最好的属性。。。我认为我们(至少T J和我)不清楚:当我们在最终价值公式中替换其属性时,你想找到哪种产品(在检查的产品中?)具有最高的最终价值?没错!很抱歉给您带来不便。英语不是我的母语,很容易出错。所以我们需要检查每一个产品还是每一个检查过的产品?是的。即将完成,我将提供一个JSFIDLE进行检查