使用jquery计算文本框数组中的值

时间:2012-08-10 10:14:56

标签: javascript jquery arrays

我的表单中有一个文本框数组,我需要根据百分比计算成本价格 当我输入价格和%时,cp是用mouseup事件计算的

sp1(name = price[] class = price)  %(class = perc)  cp1(name = cost[] class = cost)
sp2(name = price[] class = price)  %(class = perc)  cp2(name = cost[] class = cost)
sp3(name = price[] class = price)  %(class = perc)  cp3(name = cost[] class = cost)
sp4(name = price[] class = price)  %(class = perc)  cp4(name = cost[] class = cost)
sp5(name = price[] class = price)  %(class = perc)  cp5(name = cost[] class = cost)

这是我的jquery代码

$(function(){
var price = document.getElementsByClassName('price')[0];
var taxAmount = document.getElementsByClassName('cost')[0];
var tax = document.getElementsByClassName('perc')[0];

tax.onblur = function() {
    var taxAmount1= parseFloat(price.value) * parseFloat(tax.value) / 100;
    var tt = parseInt(price.value)-parseInt(taxAmount1);
   taxAmount.value=tt;
}   
});

但这仅计算第一个文本框,我该如何为整个文本框数组执行此操作 我正在使用数组,因为我想在php中提交此表单。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

jQuery选择器可以很好地匹配一系列匹配元素,所以如果你写的话,

$('.perc').blur( function() {
    ...
} );

将为'perc'类的所有元素处理该事件。现在要继续计算,您需要使用“价格”和“费用”类访问剩余字段,使用$theElement.val()获取值并进行计算。

两种最简单的方法是

  1. 从导致事件的元素$(this)开始,浏览DOM树并搜索剩余的字段。例如,如果price,taxAmount和tax的输入字段是兄弟,则可以使用correpsonding jQuery method$(this).siblings('.cost').val();)。还有其他方法可以访问父,子等。
  2. 将三个相关输入字段的索引存储在HTML5数据属性中,例如<input ... class="price" data-index="0" />。这样,您可以使用var index = $(this).data('index'); var price = $('input[data-index="' + index + '"].price').val();
  3. 轻松选择其他字段

    您应该能够继续这些提示。有关详细说明,请提供相关的HTML结构。